一、什么是哨兵模式
Redis Sentinel 是一个分布式系统,为 Redis 提供高可用性解决方案。可以在一个架构中运行多个 Sentinel 进程(progress)这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器。
1.为什么需要哨兵机制
在没有哨兵机制的情况下,Redis 主从集群中若主节点发生故障,需要运维人员手工介入,识别故障、选择合适的从节点提升为主节点,并更新所有客户端的连接配置,使其指向新的主节点。这个过程既繁琐又耗时,尤其是在紧急情况下可能导致服务长时间不可用。
2.哨兵架构拓扑图
3.Redis Sentinel 的功能如下:
- 对 Redis 节点进行监控
- 故障判断
- 故障转移
- 故障通知
二、哨兵架构的部署
1.涉及主机
角色 | 主机名 | IP地址 |
主节点 | master | 10.8.3.35 |
从节点 | slave1 | 10.8.3.36 |
从节点 | slave2 | 10.8.3.37 |
2、拓扑结构
3.设置一主两从
(1)修改所有节点的 Redis 配置文件
[root@localhost ~]# vi /usr/local/redis/conf/redis.conf
找到 bind 127.0.0.1 -::1 改为 #bind 127.0.0.1 -::1 找到 # requirepass foobared 改为 requirepass xR3@XnL0b 找到 # masterauth <master-password> 改为 masterauth xR3@XnL0b |
(2)修改 Slave 节点上的 Redis 配置文件
[root@localhost ~]# vi /usr/local/redis/conf/redis.conf
找到 # replicaof <masterip> <masterport> 改为 replicaof 10.8.3.35 6379 |