キーとサーバーを関連付ける

# Memcached::getServerByKey

(PECL memcached >= 0.1.0)

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

### 説明

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open