2016-11-18 31 views
1

我遇到了Memcached的問題。我在Debian 8上並使用PHP7。 phpinfo()返回此版本memcached3.0.0b1。我可以存儲和獲取價值,一切都很好。問題是我想存儲一個有效期限的值,但這不起作用。 我試過到目前爲止:PHP Memcached過期時間

$memcached = new Memcached(); 
$memcached->set('key','value',10); 
$memcached->set('key','value',time()+10); 
//waiting more than 10 sec 
$data = $memcached->getAllKeys(); 
var_dump($data); 
// all keys are here :'(

有什麼建議?

編輯一個新的測試:仍然沒有工作(鍵的位置)

$memcached = new Memcached(); 
$memcached->addServer('127.0.0.1',11211); 
$memcached->set('key','value',10); 
$memcached->set('key','value',time()+10); 
sleep(20); //waiting more than 20 sec 

$data = $memcached->getAllKeys(); 
var_dump($data); 
// all keys are here :'(
exit; 
+0

非常感謝烏拉圭回合的答案,但文檔說:公共BOOL的Memcached ::設置(字符串$鍵,混合$值[摘要$過期]),如果第4,什麼是第三? – Guillaume

+0

經過查閱文檔,我認爲你正在談論** memcach **,但即時通訊使用** memcached **:'( – Guillaume

+0

不起作用,這意味着不會過期或你得到一個錯誤? –

回答

0

感謝你的一切,該解決方案是(從@Barmar):

而不是getAllKeys() ,試試get()你設定的關鍵。它可能不會過期的元素,直到你真的試圖檢索它。

+1

有一個有趣的注意,說,'getAllKeys'不是一個原子操作,並不能保證所有的鍵,它的回報仍然有效。 http://no2.php.net/manual/en/memcached.getallkeys.php –