Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParamsサーバーのパラメータおよび状態を、実行時に変更する

説明

Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = FALSE [, bool $status [, callable $failure_callback ]]]]] ) : bool

Memcache::setServerParams() は、 サーバーのパラメータを実行時に変更します。 memcache_set_server_params() 関数を使用することも可能です。

注意:

この関数は、Memcache バージョン 2.1.0 で追加されました。

パラメータ

host

memcached が接続を待ち受けるホストを指定します。

port

memcached が接続を待ち受けるポートを指定します。

timeout

デーモンへの接続の際に使用する値 (秒単位) です。 デフォルト値を 1 秒でも変更する前には十分注意してください。 接続が遅くなってしまうと、 キャッシュ処理のメリットが なくなってしまいます。

retry_interval

サーバーとの接続が失敗した際に再試行を行う頻度を設定します。 デフォルト値は 15 秒です。このパラメータを -1 にすると、 自動的な再試行を行いません。 dl() を使用してこの拡張モジュールが動的に 読み込まれている場合は、このパラメータおよび persistent は何の効果も及ぼしません。

status

サーバーがオンライン状態であるかどうかを制御します。このパラメータを FALSE にし、retry_interval を -1 と設定すると、失敗したサーバーもコネクションプールに残します。 これにより、キー配布アルゴリズムに影響を与えないようにします。 このサーバーへのリクエストは、フェイルオーバーされるか失敗します。 どちらになるかは memcache.allow_failover の設定によって決まります。デフォルトは TRUE で、 サーバーがオンライン状態であることを意味します。

failure_callback

エラーが発生した際に実行されるコールバック関数を指定できるようにします。 コールバック関数は、フェイルオーバー処理の前に実行されます。 この関数は、ふたつの引数 (ホスト名、失敗したサーバーのポート) を受け取ります。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 Memcache::setServerParams() の例

<?php

function _callback_memcache_failure($host$port) {
    print 
"memcache '$host:$port' failed";
}

/* オブジェクト指向の API */

$memcache = new Memcache;

// サーバーをオフラインモードで追加します
$memcache->addServer('memcache_host'11211false11, -1false);

// サーバーをオンラインに変更します
$memcache->setServerParams('memcache_host'11211115true'_callback_memcache_failure');

/* 手続き型の API */

$memcache_obj memcache_connect('memcache_host'11211);
memcache_set_server_params($memcache_obj'memcache_host'11211115true'_callback_memcache_failure');

?>

参考