我想在我的PHP代码中使用memcache:
$memcache = new Memcache;
$memcache->connect('10.0.0.21', 11244) or die ("Could not connect");
$store = 10; # in seconds
$cache_key = "Counter";
$counter = $memcache->get($cache_key);
if (empty($counter))
{
$counter = $this->getTotal();
$result = $memcache->replace($cache_key, $counter);
if($result == false)
{
$memcache->set($cache_key, $counter, 0, $store);
}
}
echo $counter;
该值不会更新。它在相似的日子里也是相同的 - 比我在代码中设置的10秒到期时间长得多。 我究竟做错了什么?我的理解是,钥匙将在10秒后被移除但看起来却没有。
答案 0 :(得分:2)
如果密钥尚未存在,则只设置到期时间。您还需要在replace
的调用中设置它:
$result = $memcache->replace($cache_key, $counter, 0, $store);
应该解决你的问题。