(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";
}
/* OO 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');
?>