哨兵模式
Redis的2.0的时代 就出现了 一个哨兵模式
哨兵模式就是为了解决这个单点故障
哨兵程序是可以部署到 任意一台服务器上的
这台服务器 可以是
Master上 也可以是Slaver上 一句话 哨兵的运行不会影响这个主程序
# 准备一主两从服务器
参考 主从复制 文章 准备一个 master 两个 slave 如下所示
169.254.182.30 # 主服务器
169.254.182.40:8001 # 从服务器
169.254.182.40:8002 # 从服务器
1
2
3
2
3
# 配置哨兵
在任意一台从服务器上配置都可以
# ① 复制 sentinel.xml 到 etc 文件夹
cd /usr/local/redis-5.0.7
cp sentinel.conf /usr/local/redis/etc
1
2
2
# ② 修改 sentinel.conf
dir /tmp # /tmp 修改为 /usr/local/redis/etc 添加配置文件路径
# sentinel monitor mymaster(名称随便取) ip 端口 投票选举的次数一般设为1(意思当某个从服务器拥有一票后就会变成主服务器)
sentinel monitor mymaster 169.254.182.30 8001 1
# 多久进行检测一下主节点活着没有,默认是30秒
sentinel down-after-milliseconds mymaster 5000
# 后台启动,其实不配置这个可以,前台启动后,ctrl + c 哨兵也不会死
daemonize yes
1
2
3
4
5
6
7
2
3
4
5
6
7
# ③ 启动哨兵
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
# 查看哨兵是否启动 哨兵默认端口就是 26379
netstat -apn | grep 26379
1
2
3
4
2
3
4
# ④ 模拟哨兵进行主服务器选举过程
模拟哨兵:让主服务器死 从服务器会从新进行选举
# 杀死主服务器 169.254.182.30:8001
netstat -apn | grep 8001
kill -9 2923
1
2
3
2
3
上图可以看见当主服务器挂了之后,哨兵开始选举,将 169.254.182.40:8002 选举为主服务器
登录 169.254.182.40:8001客户端查看 info信息
./redis-cli -h 127.0.0.1 -p 8001
1
登录 169.254.182.40:8002客户端查看 info信息
./redis-cli -h 127.0.0.1 -p 8002
1
总结
由上面两图可以看见,当主服务器挂了之后,哨兵将 169.254.182.40:8002 选为主服务器,169.254.182.40:8001 作为从服务器和 169.254.182.40:8002 关联起了
重启 169.254.182.30:8001 服务查看哨兵是否会进行选举
可以看见,已宕机的主服务器,当重启后将会作为从服务器关联到新选举的主服务器上
集群中 至少要保证一半以上的机器处于存活状态那么整个集群才处于正常状态、否则非正常状态 集群就会奔溃
最近更新: 2025/07/30, 15:37:56