2

Memcached では期待どおりにデータが期限切れになるようですが、キー自体は期限切れになりません。値が null になった後もキーが残っているのはなぜですか? このコードを実行すると:

$frontCache = new Phalcon\Cache\Frontend\Data(array(
    "lifetime" => 30
));

//Create the Cache setting memcached connection options
$cache = new Phalcon\Cache\Backend\Memcache($frontCache, array(
    'host' => 'localhost',
    'port' => 11211,
    'persistent' => false
));

//Cache arbitrary data
$myNewRandomKey = generateNewRandomKey();
$cache->save($myNewRandomKey, array(1, 2, 3, 4, 5));

http://docs.phalconphp.com/en/latest/api/Phalcon_Cache_Backend_Memcache.htmlから取得

キー $myNewRandomKey の下に配列を正常に保存できます。次に、30 秒のタイムアウトが経過した後に次のコードを実行します。

$keys = $cache->queryKeys();
print_r($keys);

また、データは NULL ですが、キーがまだ存在していることを確認してください。ここでは、タイムアウトが期限切れになる前に入力されました。これは私には半分だけ正しいように思えます。キーもクリアされているはずです。

ただし、 $cache->delete($myNewRandomKey); を実行すると キーは完全に消去されます。一貫性がない!

結論: キーが期限切れにならない場合、または memcached にバグがある場合、別の種類の頭痛 (システム管理者の頭痛) が発生するまで、キーは時間の経過とともに成長し続けますか?

Stats:
Windows 7 64bit
Apache 2.4.4
PHP 5.4.12
Memcached 1.4.4-14-g9c66c0
Memcache Apache extension version 2.2.7-5.4-VC9-x64 from http://www.anindya.com/category/windows/
Client: Phalcon PHP

これらはバージョンですが、それが問題とは無関係であり、私の期待が間違っていることを願っています.

すべてのSO'ersに乾杯!

SL

4

0 に答える 0