Redis哨兵模式

redis哨兵模式(Sentinel)
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,sentinel已经被集成在redis2.4之后的版本中.sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务, 以及这些master服务的所有从服务.当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求
sentinel可以让redis服务实现自主的主从复制,当一个redis集群中的master失效之后,sentinel可以选举出一个salve成为master用于接替master的工作,集群中的其他redis服务器自动指向新的master同步数据.一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换

Sentinel的作用:
1.检测Master状态
2.如果发现Master出现异常, 就会进行Master-Slave切换, 将其中一个Slave作为Master, 将之前的Master作为Slave
3.Master-Slave切换后,master_redis.conf, slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换

Sentinel的工作原理:
1每个Sentinel以每秒钟一次的频率向它所知的Master, Slave以及其他 Sentinel实例发送一个PING命令如果一个实例(instance)距离最后一次有效回复PING命令的时间超过own-after-milliseconds选项所指定的值,则这个实例会被Sentinel标记为主观下线
2.如果一个Master被标记为主观下线,则正在监视这个Master的所有Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态当有足够数量的Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态,则Master会被标记为客观下线
3.若没有足够数量的Sentinel同意Master已经下线, Master的客观下线状态就会被移除, 若 Master重新向Sentinel 的PING命令返回有效回复, Master的主观下线状态就会被移除

主观下线与客观下线
主观下线指的是单个Sentinel实例对服务器做出的下线判断,即单个sentinel认为某个服务下线(有可能是接收不到订阅, 之间的网络不通等等原因)
客观下线指的是多个Sentinel实例在对同一个服务器做出SDOWN判断, 并且通过SENTINEL is-master-down-by-addr命令互相交流之后, 得出的服务器下线判断, 然后开启failover

哨兵模式的优缺点
优点:
1.基于集群, 基于主从复制, 拥有所有的主从配置的优点
2.主从可以切换, 故障可以切换, 系统的可用性提高
3.哨兵模式是主从模式的升级, 手动到自动, 更加健壮
缺点:
1.redis不好在线扩容, 集群容量一旦达到上限, 在线扩容就十分麻烦
2.哨兵模式的配置较为复杂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值