增量同步笔记

2.2.2.增量同步

全量同步需要先做RDB,然后将RDB文件通过网络传输个slave,成本太高了。因此除了第一次做全量同步,其它大多数时候slave与master都是做增量同步

什么是增量同步?就是只更新slave与master存在差异的部分数据。如图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么master怎么知道slave与自己的数据差异在哪里呢?

2.2.3.repl_backlog原理

master怎么知道slave与自己的数据差异在哪里呢?

这就要说到全量同步时的repl_baklog文件了。

这个文件是一个固定大小的数组,只不过数组是环形,也就是说角标到达数组末尾后,会再次从0开始读写,这样数组头部的数据就会被覆盖。

repl_baklog中会记录Redis处理过的命令日志及offset,包括master当前的offset,和slave已经拷贝到的offset:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

slave与master的offset之间的差异,就是salve需要增量拷贝的数据了。

随着不断有数据写入,master的offset逐渐变大,slave也不断的拷贝,追赶master的offset:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

直到数组被填满:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时,如果有新的数据写入,就会覆盖数组中的旧数据。不过,旧的数据只要是绿色的,说明是已经被同步到slave的数据,即便被覆盖了也没什么影响。因为未同步的仅仅是红色部分。

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

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

相关文章

kubeflow简单记录

kubeflow 13.7k star 1、Training Operator 包括PytorchJob和XGboostJob,支持部署pytorch的分布式训练 2、KFServing快捷的部署推理服务 3、Jupyter Notebook 基于Web的交互式工具 4、Katib做超参数优化 5、Pipeline 基于Argo Workflow提供机器学习流程的创建、编排…

JAVA系列 小白入门参考资料 接口

目录 接口 接口的概念 语法 接口使用 接口实现用例 接口特性 实现多个接口和实现用例 接口间的继承 接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的 USB 口,电源插座等。 电脑的 USB 口上&am…

【C语言】字符函数和字符串函数--超详解

前言: 在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了 ⼀系列库函数,接下来我们就学习⼀下这些函数。 1. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的&#…

C++贪心算法

关于string的系统函数! (注:以下函数只可用于string,不适用其他类型的变量) ① a.size(); 这个系统函数是用来获取这个string变量的长度的,我们通常会新建一个变量来保存他,以便之后使用。 …

Spring Boot | Spring Boot 整合 “RabbitMQ“ ( 消息中间件 ) 实现

目录: Spring Boot 整合 "RabbitMQ" ( 消息中间件 )实现 :一、Spring Boot 整合 整合实现 : Publish/Subscribe ( 发布订阅 ) 工作模式 ( "3种"整合实现方式 )1.1 基于"API"的方式 ( 实现 Publish/Subscribe "发布订阅"工作…

使用 MobaXterm 链接 Ubuntu(Windows子系统)

MobaXterm_Personal_22.1 Ubuntu(Windows子系统)

难定取舍,静观其变

今(2024年5月8日)天,本“人民体验官”在推广人民日报官方微博文化产品《带着笑意的眼睛,能看见最美的风景》的同时,还要联系4月初至今期间,与隐藏在《麻辣论坛》幕后的那位昵称“800727”者所爆发的一连串&…

BACnet到OPC UA的楼宇自动化系统与生产执行系统(MES)整合

在智能制造的浪潮下,一家位于深圳的精密电子制造企业面临着前所未有的挑战:如何高效地将楼宇自动化系统与生产执行系统(MES)整合,实现能源管理与生产流程的精细化控制。这家企业的楼宇控制系统使用的是BACnet协议&…

Java 线程池之 ThreadPoolExecutor

Java线程池,特别是ThreadPoolExecutor,是构建高性能、可扩展应用程序的基石之一。它不仅关乎效率,还直接关系到资源管理与系统稳定性。想象一下,如果每来一个请求就创建一个新的线程,服务器怕是很快就要举白旗了。而Th…

【图书推荐】《图神经网络基础、模型与应用实战》

本书目的 详解PyTorch 图神经网络基础理论、模型与十多个应用案例,带领读者掌握图神经网络在自然语言处理、计算机视觉、推荐系统、社交网络4个领域的应用开发方法,丰富读者利用深度学习算法解决实际问题的能力。 本书案例 图卷积网络实现图注意力网络…

Comate,一款基于文心大模型的智能编程助手

一、官网 Baidu Comate官网 二、安装VSCode 如何下载安装VSCode 三、VSCode安装Comate 安装方式1 访问Comate官网点击 立即安装Comate插件 按钮快速安装 安装方式2 访问VSCode市场中的BaiduComate 点击 Install 按钮访问扩展详情界面 2.打开VSCode 3.安装Comate 四、…

先经营好自己,才是成事最坚实的基础!做事要稳!

电影《教父》里有句著名的台词说:花半秒钟就能看透事物本质的人,和花一辈子也看不透事物本质的人,注定是截然不同的命运。而这所谓的“看透本质”,就是事物的底层逻辑。 底层逻辑是一种解决问题的思维模式。底层逻辑越坚固&#x…

中金:如何把握不断轮动的资产“风口”

从比特币到日股,到黄金与铜再到当前的港股,每次超预期大涨后都透支回调。 今年以来资产的“风口”不断轮动,从比特币到日股,到黄金与铜,再到当前的港股,资产仿佛“接力”般交替领先,同时“风口”…

js api part6

正则表达式 正则表达式 (Regular Expression)是用于 匹配字符串中字符组合 的模式。在 JavaScript中,正则表达式也是对象。通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式。 正则表达式在 JavaScript中的…

spring框架学习记录(3)

Spring事务 Spring事务简介 事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功或同失败 Spring事务角色 事务管理员:发起事务方,在Spring中通常指代业务层开…

AI智能分析视频监控行业的发展趋势和市场发展浅析

监控视频AI智能分析技术的现状呈现出蓬勃发展的态势,这一技术源于计算机视觉和人工智能的研究,旨在将图像与事件描述之间建立映射关系,使计算机能够从视频图像中分辨出目标信息。 在技术上,监控视频AI智能分析技术已经实现了对视…

Ps中 饱和度 和 自然饱和度 的区别?

1.饱和度(Saturation):在Photoshop中,饱和度是一个全局性调整,它影响图像中所有颜色的鲜艳程度。当你增加饱和度时,所有的颜色都会变得更浓烈、更鲜艳;相反,减小饱和度会使图像整体变…

小猪APP分发:重塑应用分发市场的创新力量

在移动互联网蓬勃发展的今天,应用分发平台作为连接开发者与用户的桥梁,扮演着至关重要的角色。然而,随着市场的饱和,如何在众多平台中脱颖而出,为开发者提供更宽广的舞台,同时确保用户能够便捷、安全地获取…

程序员必备的7大神器,效率飞起!

我们都知道程序员在工作时,会经常遇到任务繁重的情况,为了提高效率,程序员们也会借助一些软件,那么哪些软件可以帮助程序员们提高工作效率呢? 整理不易,关注一波!! 1. Xftp 7 Xft…

06-beanFactoryPostProcessor的执行

文章目录 invokeBeanFactoryPostProcessors(beanFactory)invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors())invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry);invokeBeanFactoryPostProcessors(regularPostProc…