首页 > 数据库 >redis自学(32)哨兵的作用和工作原理

redis自学(32)哨兵的作用和工作原理

时间:2024-04-11 14:35:34浏览次数:24  
标签:slave 32 redis 故障 实例 master sentinel 自学 节点

哨兵的作用

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下:

 

 

 

 

服务状态监控

Sentinel基于心跳机制监测服务状态,每隔1秒想集群的每个实例发送ping命令。

l 主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线。

l 客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例客观下线。Quorum值最好超过sentinel实例数量的一半。

 

 

选举新的master

一旦发现master故障,sentinel需要再slave中选择一个作为新的master,选择依据是这样的:

l 首先会判断slave节点与master节点断开时间长短,如果超过指定值(down-after-milliseconds * 10)则会排除该slave节点

l 然后判断slave节点的slave-priority值,越小优先级越高,如果是0则用不参与选举。(默认值是1,如果不修改的配置的话,这一条等于没有)

l 如果slave-priority一样,则判断slave节点的offset值,越大说明数据越新,优先级越高(最关键的)

l 最后是判断slave节点的运行id大小,越小优先级越高

如何实现故障转移

当选中了其中一个slave为新的master后(例如slave1),故障的转移的步骤如下:

 

 

Sentinel给备选的slave1节点发送slaveof no one命令,让该节点成为master

 

 

Sentinel给所有其他slave发送slaveof 192.168.150.101 7002 命令。让这些slave成为新master的从节点,开始从新的master上同步数据

 

 

最后,sentinel将故障节点标记为slave,当故障节点恢复后会自动成为新的master的slave节点

 

 

 

标签:slave,32,redis,故障,实例,master,sentinel,自学,节点
From: https://www.cnblogs.com/bulesea/p/18129095

相关文章

  • Redis的Lua脚本使用方法详解
    Redis的Lua脚本功能允许用户执行一段自定义的Lua代码,该代码可以访问和操作Redis的数据。这个功能对于执行复杂的操作或事务性的操作特别有用,因为它可以保证操作的原子性。下面是Redis的Lua脚本使用方法的详细解释:1.EVAL命令Redis提供了EVAL命令来执行Lua脚本。这个命令的基本......
  • docker安装运行Redis
    第一步:下拉redisdockerpullredis:7.2.4我下拉的是目前最新版本,也就是7.2.4版本dockerps查看容器运行情况第二步:挂载目录mkdir-p/home/user/lyapp/redis/conf/home/user/lyapp/redis/data第三步:新建并修改配置文件在/path/redis/conf/下新建redis.conf文件,即/home/user/l......
  • Redis Pipelining 底层原理分析及实践
    作者:vivo互联网服务器团队-WangFeiRedis是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,Redis提供了Pipelining(管道)来提升批处理性能。本文结合实践分析了SpringBoot框架下Redis的Lettuce客户端和Redisson客户端对Pipeline特性的支持原理,并针......
  • java 使用Redis的INCR命令或Lua脚本来实现分布式应用生成唯一性ID
    在Java中使用Redis的INCR命令或Lua脚本来生成分布式应用中的唯一性ID是一个常见的做法。以下是如何实现这两种方法的简要说明。1、使用Redis的INCR命令Redis的INCR命令是一个用于递增存储在键中的整数值的原子操作。如果键不存在,那么它将被初始化为0再进行递增操作。命令格式I......
  • 程序缺少graph32.ocx文件无法运行启动
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个graph32.ocx文件(挑选合适的版本文件)把它放......
  • STM32-模数转化器
    ADC(Analog-to-DigitalConverter)指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。ADC相关参数说明:分辨率:分辨率以二进制(或十进制)数的位数来表示,一般有8位、10位、12位、16位等,它说明模数转换器对输入信号的分辨能力,位数越多,表......
  • 基于STM32的智能家居系统设计与实现:手机APP与语音控制家电
    基于STM32的智能家居系统设计与实现:手机APP与语音控制家电一、研究背景与意义随着科技的进步和人们生活水平的提高,智能家居系统逐渐成为现代家庭的新宠。智能家居系统通过集成各种智能设备和传感器,为用户提供更加便捷、舒适和安全的家居环境。本研究旨在设计一个基于STM32微......
  • STM32 HAL库F103系列之OLED显示一个字符
    原理图:OLED对应IO口OLED_CS对应OV_WRST,即:PD6;OLED_RS对应OV_SCL,即:PD3,高电平为命令,低电平为数据;OLED_WR对应OV_RRST,即:PG14;OLED_RD对应DCMI_SDA,即:PG13;OLED_RST对应DCMI_RESET,即:PG15;OLED_D[7:0]对应DCMI_D[7:0],即:PC[7:0]配置步骤:1,确定IO连接关系        开发......
  • 【流水账01】来新公司两星期,自学sap系统
    机缘巧合,匪夷所思地来了cmoc总部黄埔江边,首先学习报销系统。那么很自然地,必须自己学一波会计,搞清楚什么是科目表,账户,科目,借贷,分录的基本概念搞清楚什么是凭证,做账,过账今天开会,财务想实现自动清账,搞得我一脸懵逼回家后b站竟然有个小视频给讲的很清楚,解惑了:【3.SAP未清项实......
  • 布隆过滤器 及 Redis Sorted sets 使用注意事项
    布隆过滤器基本概念布隆过滤器(英语:BloomFilter)是1970年由伯顿·霍华德·布隆(BurtonHowardBloom)提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有......