我使用了以下组合::
OS -> CentOS
php -> 5.4
Memcached Server -> 1.4
Memcached -> 2.1 [ client library for php ]
libmemcached -> 1.0.16
以及以下代码
<?php
class mem{
public $mem = null;
public static $x = 0;
public function __construct()
{
$this->mem = new Memcached();
$this->mem->addServer("localhost",11211);
$op = $this->mem->add("key_".self::$x, "test");
}
public function __destruct()
{
$op = $this->mem->delete("key_".self::$x);
$this->mem = null;
self::$x++;
}
}
for($i=0;$i<100000;$i++){
$v = new mem();
}
?>
当这个php脚本完成时,我发现没有删除5-10个键。
现在我改变了
libmemcached to 0.48
memcached to 2.0
每个密钥都被删除了
我重复了这些步骤,发现这个问题很容易重现。
现在,我在不同的计算机和常用的memcache服务器上进行了这两种设置。同样,来自较新设置的几个键也未被删除。此外,通过增加脚本的并发性,键的数量增加了非线性。
我无法理解这有什么问题。这是一个错误吗?
请帮忙!