несколько серверов в memcached потеряли кеш при отключении одного сервера - PullRequest
0 голосов
/ 17 января 2019

У меня есть два сервера 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);
}

EDIT

Если я получу ключ дважды, первый не получит значение, второй - ...

var_dump($mc->get('key')); // false
var_dump($mc->get('key')); // value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...