Redis心跳检测

news2024/11/25 18:58:37

在命令传播阶段,从服务器默认会以每秒一次的频率,向主服务器发送命令:

REPLCON FACK <rep1 ication_ offset>

其中replication_offset是从服务器当前的复制偏移量。

发送REPLCONF ACK命令对于主从服务器有三个作用:

检测主从服务器的网络连接状态。

辅助实现min-slaves选项。

检测命令丢失。

下面将分别介绍这三个作用。

检测主从服务器的网络连接状态:

主从服务器可以通过发送和接收REPLCONFACK命令来检查两者之间的网络连接是否正常:如果主服务器超过一秒钟没有收到从服务器发来的REPLCONFACK命令,那么主服务器就知道主从服务器之间的连接出现问题了。

通过向主服务器发送INFO replication命令,在列出的从服务器列表的lag一栏中,我们可以查看相应从服务器最后一次向主服务器发送REPLCONF ACK命令距离现在过了多少秒。

在一般情况下,lag的值应该在0秒或者1秒之间跳动,如果超过1秒的话,那么说明主从服务器之间的连接出现了故障。

辅助实现min-slaves配置选项:

Redis的min-slaves-to-write和min-slaves- max- lag两个选项可以防止主服务器在不安全的情况下执行写命令。

举个例子,如果我们向主服务器提供以下设置:

min-slaves-to-write 3
min-slaves-max-lag 10

那么在从服务器的数量少于3个,或者三个从服务器的延迟(lag)值都大于或等于10秒时,主服务器将拒绝执行写命令,这里的延迟值就是上面提到的INFO replication命令的lag值。

检测命令丢失:

如果因为网络故障,主服务器传播给从服务器的写命令在半路丢失,那么当从服务器向主服务器发送REPLCONFACK命令时,主服务器将发觉从服务器当前的复制偏移量少于自己的复制偏移量,然后主服务器就会根据从服务器提交的复制偏移量,在复制积压缓冲区里面找到从服务器缺少的数据,并将这些数据重新发送给从服务器。

举个例子,假设有两个处于一致状态的主从服务器,它们的复制偏移量都是200,如下图所示。

在这之后,当从服务器向主服务器发送REPLCONFACK命令的时候,主服务器会察觉从服务器的复制偏移量依然为200,而自己的复制偏移量为233,这说明复制积压缓冲区里面复制偏移量为201至233的数据(也即是命令SET key value)在传播过程中丢失了,于是主服务器会再次向从服务器传播命令SET key value,从服务器通过接收并执行这个命令可以将自己更新至主服务器当前所处的状态,如下图所示。

注意,主服务器向从服务器补发缺失数据这一操作的原理和部分重同步操作的原理非常相似,这两个操作的区别在于,补发缺失数据操作在主从服务器没有断线的情况下执行,而部分重同步操作则在主从服务器断线并重连之后执行。

总结:

主服务器通过向从服务器传播命令来更新从服务器的状态,保持主从服务器一致,而从服务器则通过向主服务器发送命令来进行心跳检测,以及命令丟失检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/865359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

坑爹的 InsCode 删我文件

我担心的问题再次发生了&#xff0c;和当初用码云时一样&#xff0c;删我代码删我文件 唉&#xff0c;算求了&#xff0c;还是用自己的网络记事本算了。

人工智能讲师AIGC讲师叶梓:大模型这么火,我们在使用时应该关注些什么?

以下为叶老师讲义分享&#xff1a; P2-P5 大语言模型的演进 开山鼻祖&#xff1a;Transformer 常见的大模型 我们应该关注些什么&#xff1f; 事实描述的正确性2、知识的时效性3、理解、运用语言的能力4、上下文连贯性5、抗干扰&#xff08;误导&#xff09;性能6、无害性7、…

临时文档2

java 中 IO 流分为几种? 按照流的流向分&#xff0c;可以分为输入流和输出流&#xff1b;按照操作单元划分&#xff0c;可以划分为字节流和字符流&#xff1b;按照流的角色划分为节点流和处理流。 Java Io流共涉及40多个类&#xff0c;这些类看上去很杂乱&#xff0c;但实际…

Docker 大热,还不了解 Dockerfile 你就OUT啦~

♥ 前 言 前言&#xff1a;近年来 Docker 非常火&#xff0c;想要玩好 Docker 的话 Dockerfile 是绕不开的&#xff0c;这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。今天我们就来聊一聊 Dockerfile 怎么写&#xff0c;那些指令到底是什么意思。 一、先来看一…

NIDS网络威胁检测系统-Golang

使用技术&#xff1a; Golang Gin框架 前端三件套 演示画面&#xff1a; 可以部署在linux和window上 目前已在Kali2021和Window10上进行测试成功

openGauss学习笔记-37 openGauss 高级数据管理-事务

文章目录 openGauss学习笔记-37 openGauss 高级数据管理-事务37.1 语法格式37.2 参数说明37.3 示例 openGauss学习笔记-37 openGauss 高级数据管理-事务 事务是用户定义的一个数据库操作序列&#xff0c;这些操作要么全做要么全不做&#xff0c;是一个不可分割的工作单位。ope…

IntelliJ中文乱码问题

1、控制台乱码 运行时控制台输出的中文为乱码&#xff0c;解决方法&#xff1a;帮助 > 编辑自定义虚拟机选项… > 此时会自动创建出一个新文件&#xff0c;输入&#xff1a;-Dfile.encodingUTF-8&#xff0c;然后重启IDE即可&#xff0c;操作截图如下&#xff1a; 2、…

微服务05-Sentinel流量防卫兵

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以 流量 为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 S…

LightningChart JS 2023Crack,CPU高效实时更新

LightningChart JS 2023Crack,CPU高效实时更新 添加了新的极地热图图表类型-添加了新系列类型&#xff0c;允许您在极地坐标系中可视化热图。极地热图的一些关键特征是&#xff1a; 处理多达400万个数据点。 快速加载速度和CPU高效实时更新。 100ms以完全显示由所有数据填充的热…

软件测试面试题——如何测试App性能?

为什么要做App性能测试&#xff1f; 如果APP总是出现卡顿或网络延迟的情况&#xff0c;降低了用户的好感&#xff0c;用户可能会抛弃该App&#xff0c;换同类型的其他应用。如果APP的性能较好&#xff0c;用户体验高&#xff0c;使用起来丝滑顺畅&#xff0c;那该应用的用户粘…

Oracle数据库中的CLOB字段类型,映射到Map<String,Object>中异常问题解决

数据库中的某个字段是CLOB类型的&#xff0c;我在查询某个SQL的时候&#xff0c;用Map<String&#xff0c;Object>来接。就会报错。 解决办法&#xff1a; 创建一个自定义处理类&#xff1a; MappedTypes 定义的是 JavaType 类型&#xff0c;可以指定哪些 Java 类型被…

DARPA TC-e3/e5数据集bin转json

关于这个数据集的一些基本信息就不赘述了&#xff0c;参考我之前的博客。DARPA TC-engagement5数据集官方工具可视化 两个方法&#xff1a;修改ELK可视化工具或直接使用自带的工具。前者相对灵活&#xff0c;因为losgstash可以通过配置过滤器来修改字段&#xff1b;可以通过out…

【论文阅读】基于深度学习的时序预测——Non-stationary Transformers

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

配置docker和复现

1.Nginx环境搭建 选择centos7来进行安装 1.1 创建Nginx的目录并进入 mkdir /soft && mkdir /soft/nginx/ cd /soft/nginx/ 1.2 下载Nginx的安装包&#xff0c;可以通过FTP工具上传离线环境包&#xff0c;或者通过wget命令在线获取安装包 wget https://nginx.org/down…

web后端解决跨域问题

目录 什么是跨域问题 为什么限制访问 解决 什么是跨域问题 域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。但是一般情况下不能这么做&#xff0c;它是由浏览器的同源策略造成的&#xff0c;是浏览器对js施加的安全…

vue svg画渐变色线条

基于业务需求需要&#xff0c;需要使用svg画渐变色弧线并且采用虚线。并且封装成组件。 一、path路径 path路径是svg中最强大的图形&#xff0c;可以绘制各种svg所有能画的图形。 路径中的线是由d属性来绘制&#xff0c;属性参数由各种命令组成&#xff0c;以下是它的基本命…

解锁Python集合的妙用:常用函数与实例深度解析

Python的集合&#xff08;Set&#xff09;是一种无序且不重复的数据结构&#xff0c;拥有强大的去重和集合运算功能。在这篇博客中&#xff0c;我们将深入探讨集合的常用函数&#xff0c;并通过实际案例为你展示其灵活应用。 创建集合​ 集合可以通过花括号来创建&#xff0c…

[数据分析与可视化] Python绘制数据地图5-MovingPandas绘图实例

MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库&#xff0c;用于处理移动物体的轨迹数据。关于MovingPandas的使用见文章&#xff1a;MovingPandas入门指北&#xff0c;本文主要介绍三个MovingPandas的绘图实例。 MovingPandas官方仓库地址为&#xff1a;mo…

地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算

经纬度与ECEF直角坐标的基本换算 我们目前最常用的全球坐标系是WGS-84坐标系&#xff0c;各种手机、地图基本用经纬度来标记位置。然而&#xff0c;经纬度对于空间的计算是很复杂的&#xff0c;需要很多三角函数操作。平面直角坐标系利用向量的运算&#xff0c;可以非常方便的…

【24择校指南】北方工业大学计算机考研考情分析

北方工业大学(B-) 考研难度&#xff08;☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分数人数统计&#xff09;、院校概况、23专业目录、23复试详情、23各科目和各专业考情分析。 正文1720字&#xff0c;预计阅读&#xff1a;5分钟。 2023考情概况…