(PECL memcached >= 0.1.0)
Memcached::getServerByKey — Получает информацию о сервере по ключу
$server_key
)
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) }