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