redis哨兵(sentinel)
目录
是什么
在之前的复制中我们了解到 主机shutdown之后 从机就会一直等待 这样就会导致阻塞

黑色的就是哨兵

能干吗


案例演示

架构
为什么是奇数个哨兵?
因为奇数个哨兵好投票


案例步骤
首先哨兵他是不存放内容的 只是起到一个吹哨人的作用 所以他的配置文件和redis的不同 并且三个哨兵对应三个配置文件

我们下载的redis安装包里面有原装的sentinel.conf
将这个文件拷贝到我们的myredis目录下

哨兵配置文件里面的参数和redis很相似

重点参数

quorum就是法定投票数 这个quorum会引出 什么是客观投票 什么是主观投票


启动哨兵模式
默认是26379端口号


把下面的内容粘贴进去 ip 端口 法定的票数是2个




给6379配置密码
6380和5381的redis配置文件下都有这行代码


80和81配置一样 因为都是要绑定6379
启动集群


原有的master挂了
打开26379的日志


26380的日志文件

查看26379的配置文件


26380的配置文件


手动关闭6379

剩下两个从机得出来的结果 刚开始读取不到结果 但是过一会就能读取到结果



6380

6381

6379的日志


他已经变成小弟了
出现的问题





6379的配置文件被哨兵加内容了 之前ignore那个才是最后一行

6381的配置文件下面也配置了一些东西

6381之前配置的这个replicaof也被拿掉了


哨兵的运行流程和选举原理

选一个哨兵做兵王 去做slaver到master这件事情


选出兵王来了

兵王去做master的转换


先看优先级 再看偏移量 再看runid谁小


复制偏移量可以这样理解
假如原先的master写了十个数据 但是slave1由于网络抖动 只有9条 而slave2有十条记录
leader肯定选2


哨兵的使用建议
那意思就是数据写入有窗口期,所有的从机变成主机也需要时间阿
在master宕机之后 选出新的master需要时间 这个时间段 会丢失数据