当前位置: 首页 > news >正文

顺德o2o网站建设贵阳百度推广电话

顺德o2o网站建设,贵阳百度推广电话,网站建设容易学吗,长沙网络工程学院【Redis】Redis主从同步中数据同步原理 文章目录【Redis】Redis主从同步中数据同步原理1. 全量同步1.1 判断是否第一次数据同步2. 增量同步3. 优化Redis主从集群4. 总结1. 全量同步 主从第一次同步是全量同步。 数据同步包括以下三个阶段: 在从节点执行slaveof命令…

【Redis】Redis主从同步中数据同步原理

文章目录

  • 【Redis】Redis主从同步中数据同步原理
    • 1. 全量同步
      • 1.1 判断是否第一次数据同步
    • 2. 增量同步
    • 3. 优化Redis主从集群
    • 4. 总结

1. 全量同步

主从第一次同步是全量同步

数据同步包括以下三个阶段:

image-20230228215542719

  1. 在从节点执行slaveof命令后,向主节点请求数据同步,主节点判断从节点是否是第一次同步,如果是第一次,则返回主节点的数据版本信息,从节点保存主节点的版本信息。
  2. 从节点第一次同步,主节点异步执行bgsave命令生成rdb文件,生成完成向从节点发送,从节点则清空本地数据去加载主节点的rdb文件实现一部分数据的同步。这时主节点和从节点之间的数据不一定是一致的。
  3. 如果在主节点执行bgsave的时候,主节点又执行了其他命令,这些命令会记录在 repl_baklog ,主节点发送其中的命令,从节点执行接收到的命令,这时就真正完成了主从数据的一致。

简述全量同步的流程:

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

1.1 判断是否第一次数据同步

master通过如下两个概念来判断slave是不是第一次来同步数据:

  • Replication Id:简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承master结点的replid。
  • offset:偏移量,•随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。

所以,slave做数据同步必须向master声明自己的 replication idoffset ,master才可以判断到底需要同步哪些数据。

如果slave节点来请求master,必须带着自己的replid和offset,master节点则判断他们俩的replid是否相等,相等则说明不是第一次来,不相等说明是第一次来,做全量同步,并返回主节点的replid和offset,slave节点则继承这些信息。

image-20230228221625453


2. 增量同步

主从第一次同步是全量同步,但如果slave重启后同步,则执行增量同步

image-20230228222543854

注:repl_baklog是一个环形的数组。

repl_baklog的大小有限,写满后会覆盖最早的数据。所以如果slave断开时间过久,导致尚未被封的数据被覆盖,则无法基于log做增量同步,只能再次全量同步。


3. 优化Redis主从集群

  • 在master中配置 repl-diskless-sync yes 启用无磁盘复制,避免全量同步时的磁盘IO。
  • Redis单节点上的内存占用不要太大,减少RDB导致的过多磁盘IO。
  • 适当提高 repl_baklog 的大小,发现slave宕机时尽快实现故障恢复,尽可能避免全量同步。
  • 限制一个master上的slave节点数量,如果实在是太多slave,则可以采用主-从-从链式结构,减少master压力。

image-20230228224412941


4. 总结

简述全量同步和增量同步的区别?

  • 全量同步:master将完整内存数据生成RDB,发送RDB到slave,后续命令则记录在repl_baklog,逐个发送给slave。
  • 增量同步:slave提交自己的offset到master,master获取repl_baklog中从offset之后的命令给slave。

什么时候执行全量同步?

  • slave节点第一次连接master节点时
  • slave节点断开时间太久,repl_baklog中的offset已经被覆盖时

什么时候执行增量同步?

  • slave节点断开又恢复,并且在repl_baklog中能够找到offset时。
http://www.yayakq.cn/news/639434/

相关文章:

  • 网站建设招标方案模板天津建设培训中心网站
  • 嘉定江桥网站建设网页的设计与制作
  • 广东网页空间网站平台邯郸做商城网站的公司
  • 怎么做qq刷会员的网站跨境电商erp软件前十名
  • iis 访问网站需要进行身份验证平台建设包括什么
  • 鹤壁做网站的公司洛阳做网站公司地址
  • 宠物网站策划书wordpress百万数据
  • 杭州外贸网站建设公司申跃如何做文化传播公司网站
  • 提交网站到谷歌石家庄住房和城乡建设厅网站
  • 网站建设流程步骤怎么样临沂住房和城乡建设局网站
  • 博客网站的建设流程做影视网站用主机还是用服务器
  • 上线了做网站怎么查看舆情报告分析10000字
  • 小灯具网站建设方案做汽车团购网站有哪些
  • 宁波易企网做的网站六安人论坛招聘求职
  • 珠宝购物网站的建设注册网站要求
  • 快速模仿一个网站口碑好的坪山网站建设
  • 网站开发设计书籍品牌网站建设代理
  • 中英文双语的网站怎么建设wordpress 除了
  • 云南网络公司网站注册公司代理有哪些
  • 途牛网站大数据建设大型网站建设济南兴田德润团队怎么样
  • wordpress站点标题字数百度账号注销
  • 深圳网站设计知名乐云seo网站建设流程中哪些部分比较重要
  • 企业网站设计的基本内容包括哪些南头外贸网站建设公司
  • 购物网站图片素材设计制作小船
  • 菏泽网站开发公司网站入口
  • 淘宝联盟 网站备案房地产网站建设报价
  • 做竞价网站服务器多少钱射阳网页设计
  • 湛江住房和城乡建设局网站大企业网站样式
  • 成都企业网站制作网站新功能演示用什么技术做的
  • 功能点计算方法 网站开发自建房设计软件