使用php的Memcached服务器1.4的行为不一致

时间:2013-07-16 10:46:03

标签: php memcached libmemcached

我使用了以下组合::

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服务器上进行了这两种设置。同样,来自较新设置的几个键也未被删除。此外,通过增加脚本的并发性,键的数量增加了非线性。

我无法理解这有什么问题。这是一个错误吗?

请帮忙!

0 个答案:

没有答案