我在PHP中使用Memcached,代码如下:
$m = new Memcache; $m->connect('myserver', 11213); $key = ... // calculate key $value = $m->get($key); if($value) return $value // calculate $value $m->set($key, $value, 3600); #var_dump($m->get($key);
现在奇怪的事情是这样的:
如果我取消注释var_dump行,我可以看到检索和转储的数据。就在推到Memcached之后。然而,这条线
$value = $m->get($key);
总是返回false。
我确信$key是一致的。
有什么可能出错?
可能会混淆第三个参数。根据文档,它是一个标志,用于启用压缩(使用 MEMCACHE_COMPRESSED ),然后第四个用于超时(秒数,或将来的特定时间)
MEMCACHE_COMPRESSED
Memcache::set (string $key, mixed $var [, int $flag [, int $expire ]])
Memcache::set
(string $key, mixed $var [, int $flag [, int $expire ]])