Redis哨兵(Sentinel)
- 是什么
- 哨兵和主从复制结合使用,来提高可用性
- 在Redis主从复制时,当主机宕机时,则此时从机也会原地待命等待主机恢复,不会选举一个新的主机,此时就无法保证高可用
- 故引入哨兵对整个主从集群进行监控,当主机宕机时,由哨兵根据选举算法选举一个从机作为新的主机,实现主从互换和高容错备份
- 哨兵监控redis的状态,当master宕机时,会根据投票数自动选举一个从机作为新的主机
- 哨兵的作用就是监控redis的状态(包括master和slave),当master宕机时,选举一个slave变成新的哨兵
- 能干嘛
- 每个客户端只是一个master或者一个slave,而哨兵要监控主从redis,即一个哨兵要监控多个redis服务器和客户端
- 主从监控:监控主从redis库运行是否正常
- 消息通知:可以将故障转移的结果发给客户端
- 故障转移(自动容错):如果master异常,会自动进行主从切换,将其中一个slave转换为master
- 配置中心:客户端(master或者slave)通过连接哨兵来获得当前Redis服务的主节点地址
- 怎么玩
- 架构
- 三台哨兵,自动监控和维护集群,不存放数据,只监控redis服务器
- 之所以要有哨兵集群,是为了防止哨兵和master都宕机,故多设置几个哨兵,并且当master宕机后,由多台哨兵进行投票来选举新的master
- 并且master宕机必须多台哨兵都认为master宕机时才会认为是宕机
- 哨兵不存放数据,只起到监控作用,并在发现master出现错误后进行故障转移
- 架构