6.4 Redis主从复制之全量复制

1.简介
把一个存储了很多数据的主节点(master)数据全部同步给一个从节点(slave),在同步的过程中master写入的新数据也需要同步过来,这样才可以达到完整同步的效果。全量复制可以完成上述功能,首先将当前的RDB文件同步给slave,写入命令单独记录,当RDB文件加载完后,通过偏移量的对比将这期间产生的新数据命令同步给slave。

2.流程

  • 首次同步时slave不知道master的runid和偏移量,slave将发送psync ? -1(psync是同步命令,可实现全量和部分复制的功能,这里有两个参数runid和offset,?表示runid,-1表示offset)来同步数据
  • master将执行一个全量复制,同时返回自己的runid和offset给slave
  • slave保存master的基本信息
  • master执行bgsave命令做一个RDB的生成,在生成RDB和RDB传输过程中写入的新命令将被推入repl_back_buffer(复制缓冲区)
  • master将RDB文件传给 slave
  • master将repl_back_buffer(复制缓冲区)传给slave
  • slave清除旧的数据
  • slave根据RDB文件和repl_back_buffer(复制缓冲区)加载新的数据
    在这里插入图片描述

3.开销

  • bgsave耗费的时间
  • RDB文件网络传输耗费的时间
  • 从节点清空数据耗费时间(根据从节点的数据规模来定)
  • 从节点加载RDB的耗费时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值