Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKeyMap a key to a server

Опис

public Memcached::getServerByKey(string $server_key): array|false

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 або false в разі помилки. За необхідності використовується Memcached::getResultCode().

Приклади

Приклад #1 Memcached::getServerByKey() example

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