Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKeyПолучает информацию о сервере по ключу

Описание

public Memcached::getServerByKey(string $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)
}