【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)

这篇具有很好参考价值的文章主要介绍了【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 【大家好,我是爱干饭的猿,本文重点介绍Redis7 哨兵,重点:哨兵运行流程和选举原理。

后续会继续分享Redis7和其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】

上一篇文章:《【Redis7】Redis7 主从复制(重点:主从复制原理)》


目录

🥞1. 哨兵

1.1 概述

1.2 作用

1.3  Redis Sentinel架构

1.4 操作步骤

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

1.6 使用建议


🥞1. 哨兵

1.1 概述

吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务

1.2 作用

  • 主从监控
    • 监控主从redis库运行是否正常
  • 消息通知
    • 哨兵可以将故障转移的结果发送到客户端
  • 故障转移
    • 如果master异常,则会进行主从切换,将其中一个slave作为新master
  • 配置中心
    • 客户端通过连接哨兵来获得当前Redis服务的主节点地址

1.3  Redis Sentinel架构

 Redis Sentinel架构如下图:

【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)

  • 3个哨兵
    • 自动监控和维护集群,不存放数据,只是监控
  • 1主2从
    • 用于数据读取和存放

1.4 操作步骤

  1. 在 /myredis 目录新建或者拷贝 sentinel.conf
  2. 先看看redis解压目录下默认的sentinel.conf文件的内容
  3. 哨兵sentinel文件参数(先导)
    1. bind 服务监听地址,用于客户端连接
    2. daemonize 是否以后台daemon方式运行
    3. protected-mode 安全保护模式
    4. port 端口
    5. logfile 日志文件路径
    6. pidfile pid日志路径
    7. dir 工作目录
    8. sentinel monitor <master> <redis-port> <quorum>
       
      1. 设置要监控的master
      2. quorm 表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)

       

    9. sentinel auth-pass <master-name> <password> 通过密码连接master
  4. 哨兵sentinel文件配置
    1. sentinel26381.conf
    2. sentinel26380.conf
    3. sentinel26379.conf【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)
  5. 先启动一主二从

    【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)
    1. 按照上章配置的一主二从基础上,需要对主机redis6379.conf进行更改
      1. 6379后续可能会变成从机,需要设置访问新主机的密码, 请设置masterauth项访问密码为123456

    2. 启动一主二从

      1. 6379.conf
        	redis-server /myredis/redis6379.conf 
        	redis-cli -a 123456
        
        6380.conf
        	redis-server /myredis/redis6380.conf 
        	redis-cli -a 123456 -p 6380
        
        6381.conf
        	redis-server /myredis/redis6381.conf 
            redis-cli -a 123456 -p 6381
  6. 启动哨兵

    1. redis-sentinel sentinel26379.conf --sentinel
      redis-sentinel sentinel26380.conf --sentinel
      redis-sentinel sentinel26381.conf --sentinel
  7. 关闭6379服务器,模仿master挂了

    1. 两台从机的数据不会丢失
    2. 会从其他两台从机选出一个新的master
    3. 挂掉的master重连回来,直接变成新master的从机

结论:

  • 本文中的 sentinel26379.conf、sentinel26380.conf、sentinel26381.conf会在运行中进行动态更改
  • 在master-slave切换中,会自动多一行slaveof的配置

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

        当一个主从配置中的master失效之后,sentinel可以选举出一个新的master,用于接替原master的工作,主从配置中其他redis服务器自动指向新的master同步数据。一般建议sentinel采用奇数台,防止某一台sentinel无法连接到master导致误切换。

运行流程,故障切换:

  1. SDOWN主观下线
    1. SDOWN 是单个sentinel 自己主观上检测到的关于master的状态,从sentinel的角度来看,如果发送了PING心跳后,在一定时间内没有收到合法的回复,就达到了SDOWN的条件
    2. sentinel配置文件中的down-after-milliseconds 设置了判断主观下线的时间长度【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)
  2. ODOWN客观下线
    1. ODOWN需要一定数量的sentinel,多个哨兵达成一致意见才能认为一个master客观上已经宕机【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)
  3. 选举出领导者哨兵
    1. 当主节点被判断客观下线以后,各个哨兵节点会进行协商,县选举出一个领导者哨兵节点并由该领导者节点进行failover(故障迁移)
    2. Raft算法 选出领导者节点【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)
  4. 由领导者节点开始推动故障切换并选出一个新master
    1. 新主登基
      1. 某个slave 备选成为新 master
      2. 选出新master的规则,剩余slave节点健康前提下
        1. redis.conf文件中,优先级slave-priority或者replica-priority最高的从节点(数字越小优先级越高)
        2. 复制偏移位置offset最大的从节点(log中记录最多条数的)
        3. 最小Run ID的从节点,也就是字典顺序,ASCII码
    2. 群臣俯首
      1. 一朝天子一朝臣,重新认老大
      2. 执行slaveof no one命令让选出来的从节点成为新的主节点,并通过slaveof命令让其他节点成为其从节点
      3. Sentinel leader会对选举出的新master执行slaveof no one操作,将其提升为master节点
      4. Sentinel leader向其它slave发送命令,让剩余的slave成为新的master节点的slave
    3. 旧主拜服
      1. 老master回来也得怂
      2. 将之前已下线的老master设置为新选出的新master的从节点,当老master重新上线后,它会成为新master的从节点
      3. Sentinel leader会让原来的master降级为slave并恢复正常工作。
  5. 以上的failover都是sentinel自己独立完成,完全无需人工干预

1.6 使用建议

  • 哨兵节点的数量应为多个,哨兵本身应该集群,保证高可用
  • 哨兵节点的数量应该是奇数个
  • 各个哨兵节点的配置应该一致
  • 如果哨兵节点部署在Docker等容器里,要注意端口的正确映射
  • 哨兵集群+主从复制,并不能保证数据零丢失

分享到此,感谢大家观看!!!

如果你喜欢这篇文章,请点赞关注吧,或者如果你对文章有什么困惑,可以私信我。

🏓🏓🏓文章来源地址https://www.toymoban.com/news/detail-430023.html

到了这里,关于【Redis7】 Redis7 哨兵(重点:哨兵运行流程和选举原理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式

    前言: redis部署集群常见的一般有三种模式:主从模式,Sentinel(哨兵模式),Redis Cluster(高可用Cluster集群),根据不同的需求可自定义选择部署方式。 Redis 主从模式(Replication) 优点: 数据备份:主节点的数据会复制到从节点,提供了数据冗余和一定程度的故障恢复能力

    2024年01月20日
    浏览(68)
  • window环境下Redis7服务器的安装和运行

    一、readis7的下载 由于在官网上没有window版本的redis下载,需要到github中去搜索,以下以redis7为例介绍redis的下载 下载地址:https://github.com/zkteco-home/redis-windows 也可以到百度网盘下载 链接:https://pan.baidu.com/s/1ruo1C2HVIMQDfoOiziwwYg?pwd=k2hb  二、解压 下载后把redis解压到目录(整个目

    2024年01月17日
    浏览(37)
  • 【redis】哨兵监控原理

        是什么?       哨兵即为吹哨人,可以巡查监控后台master主机是否故障,如果故障可以根据 投票数 自动将一个从库转换为新的master,继续提供写入服务。     作用?     无人值守运维 能干嘛 主从监控:监控主从redis库运行是否正常 消息通知:哨兵可以将故障转移的

    2024年02月03日
    浏览(24)
  • Redis 哨兵模式的原理及其搭建

    Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。 1.1.1.集群结构和作用 哨兵的结构如图: 哨兵的 作用 如下: 监控 :Sentinel 会不断检查您的master和slave是否按预期工作。 自动故障恢复 :如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新

    2024年02月05日
    浏览(36)
  • spring redis Sentinel 哨兵 原理

    redis 常用的连接客户端 有三个 Jedis:是老牌的Redis的Java实现客户端,提供了比较全面的Redis命令的支持, Redisson:实现了分布式和可扩展的Java数据结构。 Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。 如果未指定 redis cli

    2023年04月23日
    浏览(30)
  • redis高可用-哨兵模式原理篇

    上一篇,我们介绍了哨兵模式搭建 如果你跟着文档一步步的进行了安装,我相信你可能会有一些疑问。 哨兵和主节点之前有定时的通信,哨兵每隔1秒就会给主节点发送一个ping消息,同时主节点要给哨兵回复一个pong消息 下面我们使用tcpdump命令抓包看一下这个ping、pong消息。

    2023年04月10日
    浏览(25)
  • Redis进阶底层原理 - 高可用哨兵模式

    Redis底层原理篇

    2024年02月17日
    浏览(24)
  • Java开发 - 深入理解Redis哨兵机制原理

    Redis的主从、哨兵模式、集群模式,在前文中都已经有了详细的搭建流程,可谓是手把手教程,也得到了很多朋友的喜欢。由于前文偏向于应用方面,就导致了理论知识的匮乏,我们可能会用了,但却不明所以,所以今天,博主就通过接下里的几篇博客给大家分别讲解Redis哨兵

    2024年02月17日
    浏览(30)
  • Redis实现分布式锁原理(面试重点)

    一、为什么使用分布式锁? 本地锁的局限性( synchronized ): 本地锁只能锁住当前服务,只能保证自己的服务,只有一个线程可以访问,但是在服务众多的分布式环境下,其实是有多个线程同时访问的同一个数据,这显然是不符合要求的。 ·分布式锁的概念: 分布式锁指的是,

    2024年02月10日
    浏览(33)
  • Redis集群(分布式缓存):详解持久化、主从同步原理、哨兵机制、Cluster分片集群,实现高并发高可用

            单机式Redis存在以下问题,因此需要Redis集群化来解决这些问题        Redis数据快照,简单来说就是 把内存中的所有数据都记录到磁盘中 。当Redis实例故障重启后,从 磁盘读取快照文件,恢复数据 。快照文件称为RDB文件,默认是保存在当前运行目录。     (1)

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包