2010-11-19 136 views
0

我使用Memcached的使用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是一致的。

什么可能会出错?

+0

刚试过我的远程登录memcached服务器,得到$ key返回没有:)奇怪。 – Shawn 2010-11-19 04:17:54

+2

这是完整的代码吗?您似乎永远不会设置有用的关键(即将其设置为$ value,但$ value为空)。 – ZoFreX 2010-11-19 09:15:49

回答

2

可能会对第三个参数感到困惑。根据该文件,它是一个标志,启用压缩(使用MEMCACHE_COMPRESSED),然后第四个是超时(秒数,或在将来某一特定的时间)

Memcache::set(string $key, mixed $var [, int $flag [, int $expire ]])