gpt4 book ai didi

php - Memcache + PHP - 为什么数据不会过期?

转载 作者:可可西里 更新时间:2023-10-31 22:49:43 24 4
gpt4 key购买 nike

我有一个简单的示例,我将值设置为 5 秒。问题是 5 秒后;当我预期为“false”时,我仍然会得到一个值。

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");


$memcache->set('foo', 'bar', 0, 5); // 5 seconds expiry
var_dump($memcache->get('foo')); // bar
sleep(10);
var_dump($memcache->get('foo')); // still shows bar

这里是内存缓存服务器版本

服务器版本:1.4.13

最佳答案

晚了,但在您的代码中,您似乎传递了“0”表示过期(而不是“5”),这转化为“永不过期”具体来说:

 $memcache->set('foo', 'bar', 0, 5); // 5 seconds expiry

应该是:

 $memcache->set('foo', 'bar', 5); // 5 seconds expiry

除非我误会了the PHP documentation located here ,这表明 set 命令采用三个参数:

 public bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

编辑:糟糕,我看到您使用的是 Memcache 扩展而不是 Memcached,which does have four parmaters .也许尝试使用 MEMCACHE_COMPRESSED 常量而不是 0 来查看它是否有效:

 $memcache->set('foo', 'bar', MEMCACHE_COMPRESSED, 5); // 5 seconds expiry

关于php - Memcache + PHP - 为什么数据不会过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com