一、基本概念:
Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,这种故障处理的方法是效率低下的,无法接受。于是,redis 从2.8开始正式提供了 Redis Sentinel(哨兵)架构来解决这个问题。
Redis Sentinel 是一个分布式架构,其中包含若干个 Sentinel 节点和Redis数据节点(主节点和从节点)。每个 Sentinel 节点会对数据节点和其余 Sentinel 节点进行监控,当它发现节点不可达时,会对节点做下线标识。如果被标识的是主节点,它还会和其他 Sentinel 节点进行“协商”,当大多数 Sentinel 节点都认为主节点不可达时,它们会选举出一个 Sentinel 节点来完成自动故障转移的工作,同时会将这个变化实时通知给 Redis 应用方。整个过程完全是自动的,不需要人工来介入,所以这套方案很有效地解决了 Redis 的高可用问题。
可以理解为在原来的Redis主从复制模式上增加了几个用于监控的Sentinel节点,当主节点故障时,哨兵会自动地选举出一个最优的从节点切换为主节点。
在 Redis Sentinel 架构中,有3种角色:主节点master、从节点slave、sentinel节点。
二、功能:
- 监控:Sentinel节点会定期检测Redis数据节点、其余Sentinel节点是否可