redis2.6高可用方案【1】
2013-10-15 16:26
375 查看
Redis Sentinel是一个被设计用来管理redis实例的系统。它用来完成如下的三个任务:
监控 Redis Sentinel会不间断检查redis的master和slave是否如你预期一样的工作。
通知 一旦被Redis Sentinel监控的任何一个redis服务实例发生错误,它能够通知系统管理员,或者另一个节点上的服务进程,通信渠道和调用redis服务的API.
故障自动转移 如果master没有正常的工作,Sentinel将提升一个slave成为master,并在新master上启动后备服务程序,而其他的slave则重新配置为使用新的master,并通知正在使用redis server的程序新的master连接地址。
Redis Sentinel是一个分布式系统,这意味着,通常你想在你的设备上运行多个Sentinel 进程,这些进程将使用相同的通信协议以传递master down的信息并将master转移到后备系统。
Redis Sentinel作为一个独立的可执行文件称为redis-sentinel但实际上它是一种特殊的执行模式Redis服务器,也可以使用
警告:Redis Sentinel目前工作进展顺利。本文档描述了如何使用我们已经实现,并可能改变为铁卫军实现发展。Redis哨兵兼容Redis
2.4.16或更大,和Redis 2 6 0将或更大。
运行Sentinel
如果你有
或者你直接运行
以上二者的效果是一样的。
配置Sentinel
Redis的源代码分发包含一个文件称为sentinel.conf这是一个示例配置文件,你可以用它来配置Sentinel,但是一个典型的最小配置文件如下所示:
第一行是用来告诉Redis的监控的master名字叫做mymaster,地址为127.0.0.1,端口6379,在协议层次需要2个sentinel对处于失效状态的master进行扫描(如果不能达成协议,不启动故障转移)。
其他选项几乎都是这样的形式:
用于以下目的:
down状态,然而此时并不足以进行故障自动转移。但如果有足够多的sentinel实例认为被检测实例存在subjectively
down状态,然后该实例被标记为objectively down状态。而做出判断的sentinel实例的数量取决于master上的配置文件中设置的数量。
slave的集群可以在故障自动转移后被同时重新配置为连接新的master。数字越低,需要花费更多的时间才能够把故障转移过程完成,但是如果配置为slave提供旧数据,你可能不希望同时与新master同步所有的slave,而复制过程大多是非阻断slave,将会有一个时间段停止从master同步数据。(存在问题的翻译)
如你希望每次只有一个slave不可用,确保将此选项设置为1的值。
其他的配置项在sentinel.conf的示例文件中。
监控 Redis Sentinel会不间断检查redis的master和slave是否如你预期一样的工作。
通知 一旦被Redis Sentinel监控的任何一个redis服务实例发生错误,它能够通知系统管理员,或者另一个节点上的服务进程,通信渠道和调用redis服务的API.
故障自动转移 如果master没有正常的工作,Sentinel将提升一个slave成为master,并在新master上启动后备服务程序,而其他的slave则重新配置为使用新的master,并通知正在使用redis server的程序新的master连接地址。
Redis Sentinel是一个分布式系统,这意味着,通常你想在你的设备上运行多个Sentinel 进程,这些进程将使用相同的通信协议以传递master down的信息并将master转移到后备系统。
Redis Sentinel作为一个独立的可执行文件称为redis-sentinel但实际上它是一种特殊的执行模式Redis服务器,也可以使用
--sentinel选项调用正常redis-sever可执行。
警告:Redis Sentinel目前工作进展顺利。本文档描述了如何使用我们已经实现,并可能改变为铁卫军实现发展。Redis哨兵兼容Redis
2.4.16或更大,和Redis 2 6 0将或更大。
运行Sentinel
如果你有
redis-sentinel可运行文件(或者一个到
redis-server可执行文件的链接),你可以使用如下的命令启动Sentinel
redis-sentinel /path/to/sentinel.conf
或者你直接运行
redis-server在Sentinel模式
redis-server /path/to/sentinel.conf --sentinel
以上二者的效果是一样的。
配置Sentinel
Redis的源代码分发包含一个文件称为sentinel.conf这是一个示例配置文件,你可以用它来配置Sentinel,但是一个典型的最小配置文件如下所示:
sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 900000 sentinel can-failover mymaster yes sentinel parallel-syncs mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 900000 sentinel can-failover resque yes sentinel parallel-syncs resque 5
第一行是用来告诉Redis的监控的master名字叫做mymaster,地址为127.0.0.1,端口6379,在协议层次需要2个sentinel对处于失效状态的master进行扫描(如果不能达成协议,不启动故障转移)。
其他选项几乎都是这样的形式:
sentinel <option_name> <master_name> <option_value>
用于以下目的:
down-after-milliseconds的含义是当一个sentinel在以毫秒为单位的时间段内无法达到一个实例时(或者实例不答复PINGs亦或者答复错误)它就认为实例已经关闭所需要的时间值。当实例无正确响应时间超过这个时间时,Sentinel将会将实例标识为subjectively
down状态,然而此时并不足以进行故障自动转移。但如果有足够多的sentinel实例认为被检测实例存在subjectively
down状态,然后该实例被标记为objectively down状态。而做出判断的sentinel实例的数量取决于master上的配置文件中设置的数量。
can-failover用来决定一个sentinel是否在实例处于objectively down状态时启动故障转移。你可以配置所有的Sentinels执行故障切换,如果需要的话,你还可以配置为只用几个哨兵达成协议,另一些实际负责执行故障转移。
parallel-syncs
slave的集群可以在故障自动转移后被同时重新配置为连接新的master。数字越低,需要花费更多的时间才能够把故障转移过程完成,但是如果配置为slave提供旧数据,你可能不希望同时与新master同步所有的slave,而复制过程大多是非阻断slave,将会有一个时间段停止从master同步数据。(存在问题的翻译)
如你希望每次只有一个slave不可用,确保将此选项设置为1的值。
其他的配置项在sentinel.conf的示例文件中。
相关文章推荐
- redis2.6高可用方案【2】
- redis2.6高可用方案【3】
- 一些不错的Redis高可用方案
- (转)基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- Redis Sentinel(哨兵)主从高可用方案
- Redis 主从配置心得及其高可用方案
- Redis笔记5-redis高可用方案
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- 【方法】Redis集群生产环境高可用方案实战过程
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Sentinel-Redis高可用方案(一):主从复制
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- redis做DB缓存mysql做冗余数据库,memcached主备存储session下的集群高可用方案
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- Redis高可用集群方案——哨兵
- Redis+Keepalived高可用方案详细分析
- Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Redis详解之-集群方案:高可用(使用Redis Sentinel)(三)
- redis high available solution/ redis 高可用方案