(PECL memcache >= 2.1.0)
Memcache::setServerParams — 運行時(shí)修改服務(wù)器參數和狀態(tài)
$host
,$port
= 11211,$timeout
= ?,$retry_interval
= false,$status
= ?,$failure_callback
= ?Memcache::setServerParams()用于運行時(shí)修改服務(wù)器參數。 同樣你可以使用函數memcache_set_server_params()。
注意:
在memcache2.1.0加入。
host
服務(wù)端監聽(tīng)地址。
port
服務(wù)端監聽(tīng)端口。
timeout
連接持續(超時(shí))時(shí)間(單位秒),默認值1秒,修改此值之前請三思,過(guò)長(cháng)的連接持續時(shí)間可能會(huì )導致失去所有的緩存優(yōu)勢。
retry_interval
服務(wù)器連接失敗時(shí)重試的間隔時(shí)間,默認值15秒。如果此參數設置為-1表示不重試。此參數和persistent
參數在擴展以
dl()函數動(dòng)態(tài)加載的時(shí)候無(wú)效。
status
控制此服務(wù)器是否可以被標記為在線(xiàn)狀態(tài)。設置此參數值為false
并且retry_interval
參數
設置為-1時(shí)允許將失敗的服務(wù)器保留在一個(gè)池中以免影響key的分配算法。對于這個(gè)服務(wù)器的請求會(huì )進(jìn)行故障轉移或者立即失敗,
這受限于memcache.allow_failover
參數的設置。該參數默認true
,表明允許進(jìn)行故障轉移。
failure_callback
允許用戶(hù)指定一個(gè)運行時(shí)發(fā)生錯誤后的回調函數?;卣{函數會(huì )在故障轉移之前運行?;卣{函數會(huì )接受到兩個(gè)參數,分別是失敗主機的 主機名和端口號。
成功時(shí)返回 true
, 或者在失敗時(shí)返回 false
。
示例 #1 Memcache::setServerParams() 示例
<?php
function _callback_memcache_failure($host, $port) {
print "memcache '$host:$port' failed";
}
/* OO API */
$memcache = new Memcache;
// 增加一臺離線(xiàn)服務(wù)器
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);
// 使該服務(wù)器變?yōu)樵诰€(xiàn)狀態(tài)
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');
/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');
?>