我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis全量同步和增量同步原理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis全量同步和增量同步原理

全量同步

主从第一次同步是全量同步:也就是说,当你主从节点连接建立后,需要执行一次全量同步。那么Redis如何实现全量同步呢?

其实本质就是Master 给 slave 发送其保存的RDB文件。slave读取RDB文件恢复数据

 详细介绍:

Redis全量同步和增量同步原理

【第一步】slave与master建立连接后,master判断该slave 是否是第一次建立连接。那么该如何判断呢?

其实Master和slave都有一个Replication Id,简称replid,若id一致说明是已经建立过连接了,不需要进行全量同步,则需要进行增量同步。

【第二步】master 执行bgsave,生成RDB文件,同时在生成RDB的同时,也会产生一个baklog文件记录RDB期间的命令,然后将RDB文件发送给从节点,从节点加载RDB文件中的数据。至此全量同步已经完成。

【第三步】也就是后续master和slave在进行同步时候就是增量同步。则需要利用之前生成的baklog文件。

【总结全量同步】

  • slave节点先进行增量同步;
  • master节点判断replid,发现不一致,拒绝增量同步;
  • master将完整内存数据生成RDB,发送RDB到slave;
  • slave清空本地数据, 加载master的RDB;
  • master将RDB期间的命令记录在repl_baklog,并持续将lgo知道命令发送给slave;
  • slave执行接收到的命令,保持与master之间的同步。

增量同步

主从第一次同步是全量同步,但如果slave重启后同步,此时slave重启后,slave节点和master节点的数据之间有落后,因此需要进行增量同步。

Redis全量同步和增量同步原理

【过程】

master节点和slave节点中维护了一个环形数组(前文提到的repl_baklog)和一个指针为offset。

slave来申请增量同步,带着replid和offset,然后master根据获取offset之后的数据,将其发送给slave,slave进行同步。

  • 此时会出现一个问题,当slave下限太久时,master中存储的数据已经超过了这个repl_baklog的上线,因此就需要重新进行全量同步。

通过对Redis主从集群的同步介绍,可以从以下几个方面来优化Redis的主从集群

  • 在master中配置repl-diskless-sync yes 启用无磁盘负责,来避免全量同步时的磁盘IO。(应用场景:你的磁盘传输比较慢,但是你的网络带宽很大,网络状况极好。)
  • Redis单节点上内存占用不要太大。减少RDB文件的大小。
  • 适当的提高repl_baklog的大小,尽量slave恢复后做全量同步。
  • 限制一个master上的slave节点数量,可以采用主从链的形式。

Redis全量同步和增量同步原理

总结

Redis全量同步和增量同步原理

到此这篇关于Redis全量同步和增量同步原理的文章就介绍到这了,更多相关Redis全量和增量同步内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis全量同步和增量同步原理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis全量同步和增量同步原理

目录全量同步增量同步总结全量同步主从第一次同步是全量同步:也就是说,当你主从节点连接建立后,需要执行一次全量同步。那么Redis如何实现全量同步呢?其实本质就是Master 给 slave 发送其保存的RDB文件。slave读取RDB文
2023-04-09

flinkcdc同步完全量数据就不同步增量数据了

flinkcdc同步完全量数据就不同步增量数据了 使用flinkcdc同步mysql数据,使用的是全量采集模型 startupOptions(StartupOptions.earliest()) 全量阶段同步完成之后,发现并不开始同步增量数
2023-08-30

mysql增量同步到greenplum

采用工具:maxwell+Kafka+birememaxwell:maxwell能实时解析MySQL的binlog,并输出json格式的数据发送到Kafka(还支持其它的消息中间件),具体参见:maxwell官网Kafka: 一种消息中间件,在该方案中主要用于
mysql增量同步到greenplum
2016-02-27

基于SCN增量恢复DG同步

问题描述:做scn恢复备库的测试,吭哧了几天,今天终于可以记录一下,遇到了很多坑,作为初学者可以更好地理解DG,主要先关闭备库,在主库做归档丢失备库无法同步,备库产生GAP,然后增量备份恢复备库,版本:SQL*Plus: Release 11.2.0.4.0
基于SCN增量恢复DG同步
2017-07-03

PG TO Oracle 增量同步-外部表

背景  最近在负责公司数据Oracle转PG;老平台数据库:Oracle11g;新平台数据库:PostgreSQL12。由于平台统计规则有变动;所以正在推广的游戏数据无法全部迁移过来;只能在老平台上运行。而支付数据接口升级;统一进入新平台数据PG。需要将部分支
PG TO Oracle 增量同步-外部表
2015-02-06

Canal进行MySQL到MySQL数据库全量+增量同步踩坑指南

背景最近工作中遇到一个迁移数据库的需求,需要将数据库从A服务器迁移至B服务器,为了尽量减少迁移导致的停机时间,考虑使用全量迁移+增量同步的方式,最终选择使用Canal作为迁移工具准备工作1. 数据库两台服务器的数据库都需要提前准备好
2023-10-03

全量同步多张db表到ES同一个索引

一、演示场景:演示的场景主要是解决MySQL多张业务大表进行多表join查询效率低下的问题。通过把MySQL的多张大表的数据同步到同一个ES索引中。(也就是有多表字段合并到es一张宽表来解决MySQL多表join效率低下的问题)1.1、演示环境自建MySQL服
全量同步多张db表到ES同一个索引
2021-12-14

oracle增量数据同步的方法是什么

Oracle增量数据同步的方法有多种,常见的包括以下几种:使用物化视图(Materialized View):物化视图是基于查询定义的一种逻辑结构,可以将查询结果存储在物理表中。通过使用物化视图,可以在源数据库和目标数据库之间创建一个或多个
oracle增量数据同步的方法是什么
2024-04-09

MySQL特定表全量、增量数据同步到消息队列怎么实现

本篇内容主要讲解“MySQL特定表全量、增量数据同步到消息队列怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL特定表全量、增量数据同步到消息队列怎么实现”吧!1、原始需求既要同步
2023-06-21

Python脚本实现datax全量同步mysql到hive

目录前言一、展示脚本二、使用准备三、脚本使用方法前言在我们构建离线数仓时或者迁移数据时,通常选用sqoop和datax等工具进行操作,sqoop和datax各有优点,datax优点也很明显,基于内存,所以速度上很快,那么在进行全量同步时编
Python脚本实现datax全量同步mysql到hive
2024-10-23

linux 中怎么利用rsync实现文件增量同步

这篇文章给大家介绍linux 中怎么利用rsync实现文件增量同步,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、系统环境:更新源服务器:192.0.2.20目的服务器:192.0.2.21 二、目的服务器配置:1
2023-06-06

kettle增量同步抽取数据的方法是什么

kettle增量同步抽取数据的方法通常是通过以下步骤实现:1. 确定增量字段:首先需要确定用于判断数据是否已经同步的增量字段。这个字段记录了每条数据的更新时间戳或者唯一标识,用于区分新数据和已同步数据。2. 抽取增量数据:使用kettle的
2023-09-20

Windows服务器如何同步rsync以及增量备份

今天就跟大家聊聊有关Windows服务器如何同步rsync以及增量备份,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。这几天要同步两台服务器,都是Windows的服务器,我就拿自己的电
2023-06-06

编程热搜

目录