redis哨兵搭建

在上一篇文章redis主从实现的情况下实现哨兵 故障 master自动切换

redis服务器配置:

master 192.168.51.65

slave 192.168.51.67 

1、master创建sentinel.conf配置文件

port 26379
protected-mode no
daemonize yes
logfile "/home/zmoon/redis-5.0.12/sentinel.log"
sentinel deny-scripts-reconfig yes
#哨兵监控的master,主从配置一样,在进行主从切换时6379会变成当前的master端口,
sentinel monitor mymaster 192.168.51.65 6379 2
# 切换master间隔时间
sentinel down-after-milliseconds mymaster 3000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
sentinel parallel-syncs mymaster 1
#设置master和slaves验证密码
sentinel auth-pass mymaster Xunmeizongmu_2019

2.slave创建sentinel.conf配置文件(一样)

port 26379
protected-mode no
daemonize yes
logfile "/home/zmoon/redis-5.0.12/sentinel.log"
sentinel deny-scripts-reconfig yes
#哨兵监控的master,主从配置一样,在进行主从切换时6379会变成当前的master端口,
sentinel monitor mymaster 192.168.51.65 6379 2
# 切换master间隔时间
sentinel down-after-milliseconds mymaster 3000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
sentinel parallel-syncs mymaster 1
#设置master和slaves验证密码
sentinel auth-pass mymaster Xunmeizongmu_2019

 

3.启动哨兵

SUSE65:/home/zmoon/redis-5.0.12/bin # ./redis-sentinel ../sentinel.conf 
SUSE65:/home/zmoon/redis-5.0.12/bin # 

 

测试:

关闭master redis 查看日志 master正常切换到slave去了 

SUSE65:/home/zmoon/redis-5.0.12 # tail -f -n100 sentinel.log 
11790:X 28 Apr 2022 17:10:54.561 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
11790:X 28 Apr 2022 17:10:54.561 # Redis version=5.0.12, bits=64, commit=00000000, modified=0, pid=11790, just started
11790:X 28 Apr 2022 17:10:54.562 # Configuration loaded
11791:X 28 Apr 2022 17:10:54.565 * Running mode=sentinel, port=26379.
11791:X 28 Apr 2022 17:10:54.565 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
11791:X 28 Apr 2022 17:10:54.774 # Sentinel ID is ef2d4b006899967bde76f4e3ff664ff192862bb0
11791:X 28 Apr 2022 17:10:54.774 # +monitor master mymaster 192.168.51.65 6379 quorum 2
11791:X 28 Apr 2022 17:10:54.776 * +slave slave 192.168.51.67:6380 192.168.51.67 6380 @ mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:15:17.898 # +sdown master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:15:56.391 * +reboot master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:15:56.457 # -sdown master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:18:46.041 # +sdown master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:23:02.530 * +reboot master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:23:02.584 # -sdown master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:23:04.073 * +sentinel sentinel 9a923b1dac5c1ae11fb765b06edb09d32b1b1243 192.168.51.67 26379 @ mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:24:25.580 # +sdown master mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:24:25.788 # +new-epoch 1
11791:X 28 Apr 2022 17:24:25.843 # +vote-for-leader 9a923b1dac5c1ae11fb765b06edb09d32b1b1243 1
11791:X 28 Apr 2022 17:24:26.460 # +config-update-from sentinel 9a923b1dac5c1ae11fb765b06edb09d32b1b1243 192.168.51.67 26379 @ mymaster 192.168.51.65 6379
11791:X 28 Apr 2022 17:24:26.460 # +switch-master mymaster 192.168.51.65 6379 192.168.51.67 6380
11791:X 28 Apr 2022 17:24:26.460 * +slave slave 192.168.51.65:6379 192.168.51.65 6379 @ mymaster 192.168.51.67 6380
11791:X 28 Apr 2022 17:24:56.525 # +sdown slave 192.168.51.65:6379 192.168.51.65 6379 @ mymaster 192.168.51.67 6380
11791:X 28 Apr 2022 17:50:46.753 # -sdown slave 192.168.51.65:6379 192.168.51.65 6379 @ mymaster 192.168.51.67 6380

 

通过对slave redis进行写测试

SUSE67:/home/zmoon/redis-5.0.12/bin # ./redis-cli -p 6380 -a Xunmeizongmu_2019
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6380> SET key "value"
(error) READONLY You can't write against a read only replica.
127.0.0.1:6380> SET key "value"
OK
127.0.0.1:6380> SET key "value"
OK
127.0.0.1:6380> 

可以看到 当关闭master redis后 slave写入成功

至此 哨兵搭建完成

 

备注(必看):

以上搭建了两个哨兵 和两个redis服务的主从,但是想要哨兵的选举机制生效 必须至少 三个哨兵

所以按照上述步骤 需要再加一个redis服务 和 哨兵 并配置加入之前的集群。

参考文档:https://blog.csdn.net/weixin_30769833/article/details/112226862

posted @ 2022-04-28 17:57  官萧何  阅读(163)  评论(0)    收藏  举报