memcache php不会过期

时间:2011-09-16 12:20:35

标签: php memcached

我想在我的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秒后被移除但看起来却没有。

1 个答案:

答案 0 :(得分:2)

如果密钥尚未存在,则只设置到期时间。您还需要在replace的调用中设置它:

$result = $memcache->replace($cache_key, $counter, 0, $store); 

应该解决你的问题。