(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');
/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');
?>