Memcached::getServerByKey

(PECL memcached >= 0.1.0)

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

説明

publicMemcached::getServerByKey(string$server_key): array|false

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