(PECL memcached >= 0.1.0)
Memcached::getServerByKey — Получает информацию о сервере по ключу
Memcached::getServerByKey() возвращает информацию о сервере, который
может быть выбран с помощью специального параметра server_key
, который используется
в Memcached::*ByKey() функциях.
server_key
Ключ, который идентифицирует сервер, на котором хранится значение. Вместо хеширования фактического ключа элемента хешируется ключ сервера, когда решается, с каким сервером memcached взаимодействовать. Это разрешает группировать связанные элементы вместе на одном сервере, что повышает эффективность групповых операций.
Возвращает массив, содержащий следующие ключи: host
,
port
, и weight
в случае успешного выполнения или false
, если возникла ошибка.
Вызывайте метод
Memcached::getResultCode(), если требуется.
Пример #1 Пример использования Memcached::getServerByKey()
<?php
$m = new Memcached();
$m->addServers(array(
array('mem1.domain.com', 11211, 40),
array('mem2.domain.com', 11211, 40),
array('mem3.domain.com', 11211, 20),
));
$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>
Вывод приведённого примера будет похож на:
array(3) { ["host"]=> string(15) "mem3.domain.com" ["port"]=> int(11211) ["weight"]=> int(20) } array(3) { ["host"]=> string(15) "mem2.domain.com" ["port"]=> int(11211) ["weight"]=> int(40) } array(3) { ["host"]=> string(15) "mem2.domain.com" ["port"]=> int(11211) ["weight"]=> int(40) }