2010-11-19 135 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 ]])