Redis-sentinel实现redis HA 过程
- - CSDN博客架构设计推荐文章本文原创自 http://blog.csdn.net/voipmaker 转载注明出处. Redis-sentinel 介绍:. Redis-sentinel是官方介绍的监控redis的工具,实际是一个进程,通过tcp socket通信. (1) 监控 实时监测当前master和slave的状态.
Redis主从系统,除了做数据冗余,开可以做高可用性灾备。Reids提供了Sentinel工具来监控各Master的状态,如果Master异常,则会做主从切换,将slave作为master,将master作为slave。主从切换之后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变。master_redis.conf中会多了一句slaveof的配置,sentinel.conf的监控目标也随之调换,这一点要注意。
如果要监控两个redis实例,可以进行如下配置 sentinel.conf:
port 26379 daemonize yes logfile "/var/log/redis/sentinel.log" #master 7000 sentinel monitor master-7000 127.0.0.1 7000 2 sentinel down-after-milliseconds master-7000 30000 sentinel parallel-syncs master-7000 1 sentinel failover-timeout master-7000 180000 #master 7001 sentinel monitor master-7001 127.0.0.1 7001 1 sentinel down-after-milliseconds master-7001 30000 sentinel parallel-syncs master-7001 1 sentinel failover-timeout master-7001 180000
启动:
redis-sentinel sentinel.conf
[43023] 17 Jun 14:49:55.189 # Sentinel runid is 7b2f26a9633b9ec07f76ab6efba7508c235bf75d [43023] 17 Jun 14:49:55.189 # +monitor master master-7000 1.0.0.1 7000 quorum 1 [43023] 17 Jun 14:49:55.189 # +monitor master master-7001 1.0.0.1 7001 quorum 1 [43023] 17 Jun 14:49:55.190 * +slave slave 1.0.0.2:7000 1.0.0.2 7000 @ master-7000 1.0.0.1 7000 [43023] 17 Jun 14:49:55.191 * +slave slave 1.0.0.2:7001 1.0.0.2 7001 @ master-7001 1.0.0.1 7001 [43023] 17 Jun 14:52:55.815 * +fix-slave-config slave 1.0.0.2:7000 1.0.0.2 7000 @ master-7000 1.0.0.1 7000 [43023] 17 Jun 14:52:55.816 * +fix-slave-config slave 1.0.0.2:7001 1.0.0.2 7001 @ master-7001 1.0.0.1 7001
需要注意的几个地方:
1、注意第一行最后一个2,意思是当有两个sentinel实例同时检测到redis异常时,才会有反应。
2、主从切换后,redis.conf、sentinel.conf内容都会改变,主要还想要原来的主从架构,要再修改配置文件;
3、master挂掉,sentinel已经选择了新的master,但是还没有将其改成master,但是已经将old master改成了slave。那么这时候如果重启old master,就会处于无主状态。所以一方面要等sentinel稳定后再启动old master,或者重新人工修改配置文件,重新启动集群。
4、sentinel只是在server端做主从切换,app端要自己开发,例如Jedis库的SentinelJedis,能够监控sentinel的状态。这样才能完整的实现高可用性的主从切换。
您可能也喜欢: | ||||
Redis Cluster的安装和配置(beta-6) |
Redis集群增删节点的数据迁移问题 |
使用Jedis的ShardedJedis做Redis集群 |
Redis在新浪微博中的应用 |
Jedis sharding |
无觅 |