【问题标题】:PHP Memcache not working after adding multiple servers添加多个服务器后PHP Memcache无法正常工作
【发布时间】:2011-08-08 11:06:15
【问题描述】:

我正在 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 请求触发的,使用浏览器。

有什么想法吗?

【问题讨论】:

    标签: php memcached command-line-interface


    【解决方案1】:

    尝试运行这段代码

    <?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() 时完全相同的服务器池。

    【讨论】:

    • 输出很长,但我确实在第一个 var_dump() 中获得了所有三台服务器的统计信息。 get(),再次返回布尔值 false。
    猜你喜欢
    • 2012-03-25
    • 2012-01-20
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多