2016-11-18 7 views
1

Memcachedに問題があります。私はDebian 8でPHP7を使っています。 phpinfo()memcachedのこのバージョンを返します:3.0.0b1私は値を保存して取得することができ、すべてがOKです。問題は、有効期限付きの値を保存したいが、それは機能しないということです。 私はこれまで何を試してみた: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

ありがとうur答えがたくさんありますが、ドキュメントは言う:パブリックbool Memcached :: set(string $ key、mixed $ value [、int $ expiration])、その4番目の場合、3番目は何ですか? – Guillaume

+0

ドキュメントを参照した後、私はあなたが** memcach **について話していると思いますが、** memcached **: 'を使用しています( – Guillaume

+0

は機能しません、それは期限切れではない、またはエラーが発生することを意味しますか? –

答えて

0

おかげで、あなたのすべては、溶液は、(@Barmarから)であった:

代わりのgetAllKeys()get()あなたが設定したキーを試してください。実際に要素を取得しようとするまで要素が期限切れになることはありません。

+1

'getAllKeys'はアトミックな操作ではなく、返されるすべてのキーがまだアクティブであることを保証するものではありません。 http://no2.php.net/manual/ja/memcached.getallkeys.php –

関連する問題