我偶然发现了Memcached服务器(版本1.4.5)的奇怪行为: 我有一个服务器,我正在尝试删除一个存储的值,它不起作用,因为该项目仍然存在(我没有收到任何错误)。
我写了一个快速的PHP代码来显示问题:
$memcache_object = memcache_connect(MEMCACHED_SERVER_ADDRESS, MEMCACHED_SERVER_PORT);
$key = '64b788714dx7cds5350101e37ec0ddd40253123d';
$myObject = memcache_get($memcache_object, $key);
echo count($myObject); // Prints 1000
memcache_delete($memcache_object, $key);
$myObjectSecondTry = memcache_get($memcache_object, $key);
if (empty($myObjectSecondTry))
echo 'Empty'; // It does print it's empty
memcache_close($memcache_object);
现在如果我运行代码一旦它显示“1000”并且它说第二个memcache_get()上的对象是空的尝试。 但是如果我点击刷新并再次运行它,那么$ key仍然存在于memcached服务器上,我得到相同的输出。
我还尝试在每个memcache调用之间重新连接(即get-> delete-> get),但它没有帮助。
唯一清除内存的是重置Memcached服务。
请告知。
答案 0 :(得分:1)
据我记得,这是超时的问题,所以请你尝试使用:
memcache_delete($memcache_object, $key, 0);