当一台服务器宕机时,memcached上的多台服务器丢失了缓存

时间:2019-01-17 18:08:40

标签: php memcached

我有两个服务器memcached用于将缓存存储在PHP应用程序中。工作正常,但是当一台服务器出现故障时,找不到密钥。

在此示例中,192.168.0.10处于关闭状态。有时找到密钥,有时找不到。

我需要使用两台服务器,如果只有一台服务器,它将继续工作。

$servers = array(
    array('192.168.0.40', 11211),
    array('192.168.0.10', 11211)
);
$mc = new Memcached('memcached');
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
$mc->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$mc->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 2);
$mc->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS, true);
$mc->setOption(Memcached::OPT_AUTO_EJECT_HOSTS, true);
$mc->setOption(Memcached::OPT_TCP_NODELAY, true);
$mc->setOption(Memcached::OPT_CONNECT_TIMEOUT, 10);
if (count($mc->getServerList() < 1)) {
    $mc->addServers($servers);
}

编辑

如果我两次拿到钥匙,首先不知道值,第二次得到...

var_dump($mc->get('key')); // false
var_dump($mc->get('key')); // value

0 个答案:

没有答案