Я столкнулся с нечетной проблемой с кликом pecl/memcached. В моей настройке у меня есть 3 сервера memcached. Когда я останавливаюсь (это экземпляр ec2), один из серверов memcached для имитации полного сбоя, операция «получить» занимает 4 секунды. Как заставить его тайм-аут раньше?failcached server failover
Вот некоторые фрагменты кода:
$this->memcache = new Memcached;
$this->memcache->setOption(Memcached::OPT_DISTRIBUTION ,Memcached::DISTRIBUTION_CONSISTENT);
$this->memcache->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE ,TRUE);
...
foreach($CFG->data_memcache_servers as $server){
if (!$this->memcache->addserver($server,11211)){
throw new Exception('Unable to connect to memcache server');
}
}
...
$data = $this->memcache->get($key);
Какие данные Memcached ? – Bil
Данные - это просто нежелательный объект. Я понял. Необходимо использовать Memcached :: OPT_CONNECT_TIMEOUT. Похоже, что соединение происходит при «get» не при добавлении сервера(). –
Да связи устанавливаются только тогда, когда они необходимы (на вызовы «Memcache :: get') – Bil