首页 > 代码库 > YII实现Memcache故障转移的配置办法
YII实现Memcache故障转移的配置办法
YII在默认配置下连接Memcache失败时会报错,要想实现故障转移就要改一下配置和代码
1、首先修改一下YII的 caching/CMemCache.php,我的版本是 1.1.7
找到
$cache->addServer($server->host,$server->port,$server->persistent,$server->weight,$server->timeout,$server->status);
改为
$cache->addServer(
$server->host,
$server->port,
$server->persistent,
$server->weight,
$server->timeout,
$server->retryInterval,
$server->status);
原因:源码中少了 retryInterval 参数,这是故障转移的关键参数
retry_interval 的官方解释:
服务器连接失败时重试的间隔时间,默认值15秒。如果此参数设置为-1表示不重试。
FROM http://php.net/manual/zh/memcache.addserver.php
2、修改YII应用的配置文件 protected/config/main.php 中的cache配置项
‘cache‘=>array( ‘class‘=>‘system.caching.CMemCache‘, //‘useMemcached‘=> true, ‘servers‘=>array( array( ‘host‘=>‘127.0.0.1‘, ‘port‘=>11211, ‘weight‘=>40, ‘timeout‘ => 5, ‘retryInterval‘ => -1 ), array( ‘host‘=>‘127.0.0.1‘, ‘port‘=>11212, ‘weight‘=>30, ‘timeout‘ => 5, ‘retryInterval‘ => -1 ), array( ‘host‘=>‘127.0.0.1‘, ‘port‘=>11213, ‘weight‘=>50, ‘timeout‘ => 5, ‘retryInterval‘ => -1 ), ), ),
以上代码中只有一个是能正确使用的MC服务器,即端口是11211的服务器是正常开启的
如此配置也能正常运行了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。