Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams運(yùn)行時(shí)修改服務(wù)器參數(shù)和狀態(tài)

說(shuō)明

Memcache::setServerParams(
    string $host,
    int $port = 11211,
    int $timeout = ?,
    int $retry_interval = false,
    bool $status = ?,
    callback $failure_callback = ?
): bool

Memcache::setServerParams()用于運(yùn)行時(shí)修改服務(wù)器參數(shù)。 同樣你可以使用函數(shù)memcache_set_server_params()。

注意:

在memcache2.1.0加入。

參數(shù)

host

服務(wù)端監(jiān)聽地址。

port

服務(wù)端監(jiān)聽端口。

timeout

連接持續(xù)(超時(shí))時(shí)間(單位秒),默認(rèn)值1秒,修改此值之前請(qǐng)三思,過長(zhǎng)的連接持續(xù)時(shí)間可能會(huì)導(dǎo)致失去所有的緩存優(yōu)勢(shì)。

retry_interval

服務(wù)器連接失敗時(shí)重試的間隔時(shí)間,默認(rèn)值15秒。如果此參數(shù)設(shè)置為-1表示不重試。此參數(shù)和persistent參數(shù)在擴(kuò)展以 dl()函數(shù)動(dòng)態(tài)加載的時(shí)候無(wú)效。

status

控制此服務(wù)器是否可以被標(biāo)記為在線狀態(tài)。設(shè)置此參數(shù)值為false并且retry_interval參數(shù) 設(shè)置為-1時(shí)允許將失敗的服務(wù)器保留在一個(gè)池中以免影響key的分配算法。對(duì)于這個(gè)服務(wù)器的請(qǐng)求會(huì)進(jìn)行故障轉(zhuǎn)移或者立即失敗, 這受限于memcache.allow_failover參數(shù)的設(shè)置。該參數(shù)默認(rèn)true,表明允許進(jìn)行故障轉(zhuǎn)移。

failure_callback

允許用戶指定一個(gè)運(yùn)行時(shí)發(fā)生錯(cuò)誤后的回調(diào)函數(shù)。回調(diào)函數(shù)會(huì)在故障轉(zhuǎn)移之前運(yùn)行?;卣{(diào)函數(shù)會(huì)接受到兩個(gè)參數(shù),分別是失敗主機(jī)的 主機(jī)名和端口號(hào)。

返回值

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

范例

示例 #1 Memcache::setServerParams() 示例

<?php

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

/* OO API */

$memcache = new Memcache;

// 增加一臺(tái)離線服務(wù)器
$memcache->addServer('memcache_host'11211false11, -1false);

// 使該服務(wù)器變?yōu)樵诰€狀態(tài)
$memcache->setServerParams('memcache_host'11211115true'_callback_memcache_failure');

/* procedural API */

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

?>

參見