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