(PECL memcache >= 2.1.0)
Memcache::setServerParams — 在執行期間變更伺服器參數和狀態
$host
,$port
= 11211,$timeout
= ?,$retry_interval
= false
,$status
= ?,$failure_callback
= ?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
允許使用者指定在遇到錯誤時執行的回呼函式。回呼函式會在嘗試故障轉移之前執行。該函式接受兩個參數,即失敗伺服器的主機名稱和埠號。
範例 #1 Memcache::setServerParams() 範例
<?php
function _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');
?>