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的服务器是正常开启的

如此配置也能正常运行了

YII实现Memcache故障转移的配置办法的更多相关文章

  1. 基于无域故障转移群集 配置高可用SQLServer 2016数据库

    基于上次的文章搭建的环境,可以在这里:http://www.cnblogs.com/DragonStart/p/8275182.html看到上次的文章. 演示环境 1. 配置一览 Key Value ...

  2. Hyper-V故障转移群集

    Hyper-V故障转移群集配置完成后,在故障转移群集管理器中新建虚机:角色-虚拟机-新建虚拟机 如果直接在Hyper-V管理器中新建虚机,则不是高可用,需要在故障转移群集管理器中将其添加进来使其成为高 ...

  3. 搭建iSCSI文件服务器故障转移群集

    故障转移群集(Failover Cluster)可以提供一个高可用性应用程序或服务的网络环境,本章将接受如何搭建iSCSI SAN文件服务器故障转移群集. 故障转移群集概述 我们可以将多台服务器组成一 ...

  4. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

  5. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  6. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  7. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...

  8. 在Windows 2008/2008 R2 上配置IIS 7.0/7.5 故障转移集群

    本文主要是从:http://support.microsoft.com/kb/970759/zh-cn,直接转载,稍作修改裁剪而来,其中红色粗体部分,是我特别要说明的 若要配置 IIS 7.0 和 7 ...

  9. keepalive配置mysql自动故障转移

    keepalive配置mysql自动故障转移 原创 2016年02月29日 02:16:52 2640 本文先配置了一个双master环境,互为主从,然后通过Keepalive配置了一个虚拟IP,客户 ...

随机推荐

  1. mybatis sql in 查询(mybatis sql语句传入参数是list)mybatis中使用in查询时in怎么接收值

    1.in查询条件是list时 <select id="getMultiMomentsCommentsCounts" resultType="int"> ...

  2. 用thinkphp进行微信开发的整体设计思考

    用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明 ...

  3. 解决Ecshop因为动态ip问题登录后台自动退出

    解决Ecshop因为动态ip问题登录后台自动退出 PHP  铁匠  2年前 (2013-07-21)  1130℃  0评论 修改lib_base.php文件real_ip()函数,添加以下代码即可解 ...

  4. memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论

    附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memca ...

  5. Jsp入门学习笔记

    #Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...

  6. nginx 配置多个二级域名

    server { server_name domain.com www.domain.com *.domain.com ; set $subdomain ''; if ($host ~* (\b(?! ...

  7. sentinel

    Computer Science An Overview _J. Glenn Brookshear _11th Edition Inherent in processing a sequential ...

  8. html之内联元素与块状元素;

    html之内联元素与块状元素 一.html之内联元素与块状元素 1.块状元素一般比较霸道,它排斥与其他元素位于同一行内.比如div,并且width与height对它起作用. 2.内联元素只能容纳文本或 ...

  9. C# 操作Cookie类

    1.Cookie操作类 using System; using System.Data; using System.Configuration;using System.Web;using Syste ...

  10. phpCAS::handleLogoutRequests()关于java端项目登出而php端项目检测不到的测试

    首先,假如你有做过cas,再假如你的cas里面有php项目,这个时候要让php项目拥有cas的sso功能,你需要改造你的项目,由于各人的项目不同,但是原理差不多,都是通过从cas服务器获取sessio ...