Php/docs/memcached.getserverbykey

提供:Dev Guides
< Php
移動先:案内検索

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKeyキーとサーバーを関連付ける


説明

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

Memcached::getServerByKey() は、 Memcached::*ByKey() 系の操作で指定された server_key に対応するサーバーを返します。


パラメータ

server_key
値を格納したりデータを取得したりするサーバーを表すキー。 アイテムの実際のキーをハッシュするかわりにサーバーのキーをハッシュして、どの memcached サーバーとやりとりするのか選びます。 これで、関連するアイテムを一つのサーバーにまとめられるようになり、マルチ操作の効率が上がります。


返り値

成功した場合に配列を返します。この配列には hostport そして 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)
}