Map a key to a server


(PECL memcached >= 0.1.0)

Memcached::getServerByKeyMap a key to a server

Описание

public array Memcached::getServerByKey ( string $server_key )

Memcached::getServerByKey() returns the server that would be selected by a particular server_key in all the Memcached::*ByKey() operations.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

Возвращаемые значения

Returns an array containing three keys of host, port, and weight on success or FALSE on failure. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Memcached::getServerByKey() example

<?php
$m 
= new Memcached();
$m->addServers(array(
    array(
'mem1.domain.com'1121140),
    array(
'mem2.domain.com'1121140),
    array(
'mem3.domain.com'1121120),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLEtrue);

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) }