redis 哨兵 Sentinel

在上一篇一主多从的基础上,再启动一个哨兵服务,和一主多从的区别是:当主机挂了能自动把从一个从机切换成主机

假设此时主从关系是:主机(6379),从机1(6380),从机2(6381),和上面的主从一致,配置文件也都是在 /myredis 中

环境搭建

在 /myredis 中再创建一个配置文件 sentinel.conf(名字不能错,必须是这个),这个配置文件中写入如下内容

# redissentinel 是给这个哨兵取个名称
# 127.0.0.1 6379 主机的ip和端口
# 最后面的 1 表示多少个哨兵同意(当配置多个哨兵的时候才有意义)
sentinel monitor redissentinel 127.0.0.1 6379 1

然后启动哨兵,在 redis bin 目录下执行 ./redis-sentinel /myredis/sentinel.conf 就好了

主机挂了

自动从从机中选举一个作为主机,比如 6380 作为新的主机,6381 还是作为从机,不过这时 6381 不再是 6379 的从机了而是 6380 的从机

主机恢复

主机挂了之后重新启动,会发生什么呢?主机会作为从机了,不再恢复主机身份。此时关系就是:主机(6380),从机1(6380),从机2(6379)

选举规则

优先级靠前:每个配置文件都有 replica-priority 配置项,默认是100,也就是 replica-priority 越小越优先,我们这里都是使用的同一个公共配置文件,都是默认是100

偏移量最大:比如 6379 里面10个数据,6380 里面也是10个数据,6381 里面只有 9 个数据,那么 6380 的偏移量最大,优先选 6380 作为主机

runid 最小:每个 redis 都会随机生成一个 40 位的 runid,这个不会都一样,所以走到这一步的时候肯定能选出一个从机作为主机

posted @ 2023-06-28 17:55  CyrusHuang  阅读(3)  评论(0编辑  收藏  举报