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 サーバーとやりとりするのか選びます。 これで、関連するアイテムを一つのサーバーにまとめられるようになり、マルチ操作の効率が上がります。
返り値
成功した場合に配列を返します。この配列には 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) }