redis_sentinel哨兵

哨兵-sentinel

单点故障可以通过主从/主备解决,但是需要人工维护主的故障问题,此时可以用HA高可用哨兵模式解决。
1.监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
2.提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
3.自动故障迁移(Automatic failover):当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
新建 26379.conf ,26380.conf ,26381.conf 文件

port 26379  //哨兵端口号 26380  26381
sentinel monitor mymaster 127.0.0.1 6379 //监控该ip端口号的redis实例
redis-server /root/test/26379.conf --sentinel
[root@iZuf6ir4og87e245nh5ltuZ ~]# redis-server /root/test/26379.conf --sentinel
28108:X 10 Jan 2022 21:48:33.355 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28108:X 10 Jan 2022 21:48:33.355 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=28108, just started
28108:X 10 Jan 2022 21:48:33.355 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 5.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 28108
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

28108:X 10 Jan 2022 21:48:33.357 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
28108:X 10 Jan 2022 21:48:33.358 # Sentinel ID is 5e872f7f1f80229199314ea18e0963cbac4f6d48
28108:X 10 Jan 2022 21:48:33.358 # +monitor master mymaster 127.0.0.1 6379 quorum 2
28108:X 10 Jan 2022 21:48:33.359 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379  6380跟随6379
28108:X 10 Jan 2022 21:48:33.360 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379   6381跟随6379
28108:X 10 Jan 2022 21:49:01.032 * +sentinel sentinel eafc0c81e7a958f1317b896d980f04d58b032528 127.0.0.1 26380 @ mymaster 127.0.0.1 6379
28108:X 10 Jan 2022 21:49:18.668 * +sentinel sentinel ed7c6f838052f628a9373e661b2a5214dd505976 127.0.0.1 26381 @ mymaster 127.0.0.1 6379
28108:X 10 Jan 2022 21:54:54.497 # +sdown master mymaster 127.0.0.1 6379
28108:X 10 Jan 2022 21:54:54.566 # +new-epoch 1
28108:X 10 Jan 2022 21:54:54.568 # +vote-for-leader eafc0c81e7a958f1317b896d980f04d58b032528 1
28108:X 10 Jan 2022 21:54:54.597 # +odown master mymaster 127.0.0.1 6379 #quorum 3/2  2个哨兵认为6379挂了 一多半
28108:X 10 Jan 2022 21:54:54.597 # Next failover delay: I will not start a failover before Mon Jan 10 22:00:54 2022
28108:X 10 Jan 2022 21:54:55.507 # +config-update-from sentinel eafc0c81e7a958f1317b896d980f04d58b032528 127.0.0.1 26380 @ mymaster 127.0.0.1 6379
28108:X 10 Jan 2022 21:54:55.507 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
28108:X 10 Jan 2022 21:54:55.507 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380  选举6380
28108:X 10 Jan 2022 21:54:55.507 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380
28108:X 10 Jan 2022 21:55:25.509 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380


[root@iZuf6ir4og87e245nh5ltuZ ~]# redis-server /root/test/26380.conf --sentinel
28112:X 10 Jan 2022 21:48:58.984 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28112:X 10 Jan 2022 21:48:58.984 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=28112, just started
28112:X 10 Jan 2022 21:48:58.984 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 5.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 28112
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

28112:X 10 Jan 2022 21:48:58.986 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
28112:X 10 Jan 2022 21:48:58.988 # Sentinel ID is eafc0c81e7a958f1317b896d980f04d58b032528
28112:X 10 Jan 2022 21:48:58.988 # +monitor master mymaster 127.0.0.1 6379 quorum 2
28112:X 10 Jan 2022 21:48:58.988 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:48:58.990 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:48:59.827 * +sentinel sentinel 5e872f7f1f80229199314ea18e0963cbac4f6d48 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:49:18.668 * +sentinel sentinel ed7c6f838052f628a9373e661b2a5214dd505976 127.0.0.1 26381 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.473 # +sdown master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.563 # +odown master mymaster 127.0.0.1 6379 #quorum 2/2
28112:X 10 Jan 2022 21:54:54.563 # +new-epoch 1
28112:X 10 Jan 2022 21:54:54.563 # +try-failover master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.565 # +vote-for-leader eafc0c81e7a958f1317b896d980f04d58b032528 1
28112:X 10 Jan 2022 21:54:54.568 # 5e872f7f1f80229199314ea18e0963cbac4f6d48 voted for eafc0c81e7a958f1317b896d980f04d58b032528 1
28112:X 10 Jan 2022 21:54:54.568 # ed7c6f838052f628a9373e661b2a5214dd505976 voted for eafc0c81e7a958f1317b896d980f04d58b032528 1
28112:X 10 Jan 2022 21:54:54.641 # +elected-leader master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.641 # +failover-state-select-slave master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.742 # +selected-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.742 * +failover-state-send-slaveof-noone slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:54.797 * +failover-state-wait-promotion slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:55.442 # +promoted-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:55.442 # +failover-state-reconf-slaves master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:55.506 * +slave-reconf-sent slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:55.729 # -odown master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:56.444 * +slave-reconf-inprog slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:56.444 * +slave-reconf-done slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:56.521 # +failover-end master mymaster 127.0.0.1 6379
28112:X 10 Jan 2022 21:54:56.521 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
28112:X 10 Jan 2022 21:54:56.521 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
28112:X 10 Jan 2022 21:54:56.521 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380
28112:X 10 Jan 2022 21:55:26.538 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380


[root@iZuf6ir4og87e245nh5ltuZ ~]# redis-server /root/test/26381.conf --sentinel
28116:X 10 Jan 2022 21:49:16.651 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28116:X 10 Jan 2022 21:49:16.651 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=28116, just started
28116:X 10 Jan 2022 21:49:16.651 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 5.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26381
 |    `-._   `._    /     _.-'    |     PID: 28116
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

28116:X 10 Jan 2022 21:49:16.652 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
28116:X 10 Jan 2022 21:49:16.654 # Sentinel ID is ed7c6f838052f628a9373e661b2a5214dd505976
28116:X 10 Jan 2022 21:49:16.654 # +monitor master mymaster 127.0.0.1 6379 quorum 2
28116:X 10 Jan 2022 21:49:16.655 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:49:16.656 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:49:17.386 * +sentinel sentinel eafc0c81e7a958f1317b896d980f04d58b032528 127.0.0.1 26380 @ mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:49:18.103 * +sentinel sentinel 5e872f7f1f80229199314ea18e0963cbac4f6d48 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:54:54.419 # +sdown master mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:54:54.566 # +new-epoch 1
28116:X 10 Jan 2022 21:54:54.568 # +vote-for-leader eafc0c81e7a958f1317b896d980f04d58b032528 1
28116:X 10 Jan 2022 21:54:55.507 # +config-update-from sentinel eafc0c81e7a958f1317b896d980f04d58b032528 127.0.0.1 26380 @ mymaster 127.0.0.1 6379
28116:X 10 Jan 2022 21:54:55.507 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
28116:X 10 Jan 2022 21:54:55.507 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
28116:X 10 Jan 2022 21:54:55.507 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380
28116:X 10 Jan 2022 21:55:25.540 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380


6379断开6380成为新选举的主机

哨兵通过发布订阅知道主有几个从机;哨兵可以互相感知其余哨兵的存在

通过psubscribe * 查看发布订阅的通道
127.0.0.1:6379> PSUBSCRIBE *
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "*"
3) (integer) 1
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26379,5e872f7f1f80229199314ea18e0963cbac4f6d48,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26381,ed7c6f838052f628a9373e661b2a5214dd505976,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,eafc0c81e7a958f1317b896d980f04d58b032528,0,mymaster,127.0.0.1,6379,0"
1) "pmessage"
2) "*"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值