添加多个服务器后,PHP Memcache无法正常工作

时间:2011-04-19 07:46:01

标签: php memcached command-line-interface

我在PHP中创建一些备份CLI脚本,它使用Memcache类,但我有一个奇怪的问题......

当我在Memcache上附加多个服务器时,get()方法总是返回false,即使条目存在,但是当我只附加一个服务器时,其中放入了该条目,其值将被返回...

不起作用:

$mc = new Memcache();
$mc->addServer('localhost', 11211);
$mc->addServer('localhost', 11212);
$mc->addServer('localhost', 11213);
var_dump($mc->get('someKey')); //bool(false)

但这有效:

$mc = new Memcache();
$mc->addServer('localhost', 11211); 
var_dump($mc->get('someKey')); //Outputs actual value

我再说一遍,我从命令行运行这个脚本。在将所有三个服务器都添加到连接池中的情况下,memcache中的条目也是使用Memcache类创建的。唯一不同的是,使用浏览器通过HTTP请求来保存缓存条目。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试运行此代码

<?php
error_reporting(E_ALL || E_NOTICE);

$mc = new Memcache();
$mc->addServer('localhost', 11211);
$mc->addServer('localhost', 11212);
$mc->addServer('localhost', 11213);

var_dump($mc->getExtendedStats());
var_dump($mc->get('someKey')); //bool(false)
?>

此外,您应该set()使用与您get()时完全相同的服务器池的密钥。