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() の例
<?phpfunction _callback_memcache_failure($host, $port) { print "memcache '$host:$port' failed";}/* オブジェクト指向の API */$memcache = new Memcache;// サーバーをオフラインモードで追加します$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);// サーバーをオンラインに変更します$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');/* 手続き型の API */$memcache_obj = memcache_connect('memcache_host', 11211);memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');?>