7.1 Redis哨兵之简介

  • 时间:
  • 浏览:
  • 来源:互联网

1.主从复制存在的问题
(1).master故障
对于master出现的故障,连接到master节点上的client将无法进行读写操作。连接到从节点上的只读客户端是正常的,对应的client服务可以正常使用。此时需要对这个故障进行手动处理,比较简单的方法是向一个slave执行slaveof no one命令,将其设为新的master,对另外的slave执行slaveof new master命令将其连接到新的master上。
在这里插入图片描述

(2).存在的问题

  • 手动故障转移:处理故障是手动完成的,及时性低,另外如何去判断Redis是不是存在问题需要进行故障转移也是一个比较棘手的问题
  • 写能力和存储能力受限:只有其中一台服务器可以写入数据,导致写和存储能力受限

2.哨兵架构
(1).简介
Redis Sentinel可以看做是一个Redis的进程(分为多个节点,保证高可用及故障判断的公平性),这个进程不会存储数据,它是用来完成对Redis的故障判断、故障转移及通知客户端的。
对于客户端来说,不会再去通过Redis获取信息,而是记录Redis Sentinel的地址,通过Sentinel获取Master信息,根据返回的Master信息进行连接。
在这里插入图片描述

(2).Redis Sentinel故障转移流程

  • 多个sentinel发现并确认master有问题
  • 选举出一个sentinel作为领导
  • sentinel选出一个slave作为master
  • sentinel通知其余slave成为新的master的slave
  • sentinel通知客户端主从变化
  • 如果老的master复活,通知其成为新master的slave
    在这里插入图片描述

(3).Redis Sentinel监控多套Master-Slave
Redis Sentinel通过master-name配置可以实现对多个Master-Slave进行监控。

本文链接http://www.dzjqx.cn/news/show-617170.html