Memcached / Memcache密钥未过期

时间:2014-10-20 23:17:34

标签: php memcached phalcon libmemcached libmemcache

似乎数据在Memcached中按预期到期,但密钥本身永不过期。为什么在价值被淘汰之后钥匙会粘在一起?当我运行此代码时:

$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);

并且看到关键STILL EXISTS,虽然数据为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人欢呼!

SL

0 个答案:

没有答案