redis主从库数据同步

redis 同时被 2 个专栏收录
5 篇文章 0 订阅
4 篇文章 0 订阅

redis主从库数据同步

当启用多个redis实例的时候。可以通过replicaof或slaveof命令形成主从库关系
数据同步流程
1.从库发给主库psync命令,包含两个参数runID(主库id)和offset(复制进度),当第一次执行时,由于不知道主库的id,将主库id设为? offset设为-1,代表第一次复制
2.主库接到从库命令后,会使用FULLRESYNC(表示第一次全量复制)命令进行响应,携带runID和offset
3.返回从库后,从库记录下runID和offset
4.主库将所有数据同步给从库,从库收到数据后,在本地完成数据复制(主库生成rdb文件,发送给从库,从库接收到文件后,清空库,保存数据)
5.在从库复制数据时,主库不会阻塞,正常处理命令,将命令记录到repliucation buffer中
6.主库将replication buffer中的命令发送给从库,从库执行这些操作,完成同步
同步数据耗时操作
1.生成rdb文件
2.传输rdb文件
解决耗时操作
将一个从库作为主库,形成主-从-从模式,其中一个从库作为其他库的主库,这样可以减少真正主库的压力
主从库连接方式:长连接
长连接风险点:网络中断
redis解决方案
2.8版本之前,网络中断直接进行全量复制
2.8版本之后,增量复制,当主从库断开连接后,主库将操作命令写入replicaton buffer同时将命令写入repl_backlog_buffer是一个环形缓冲区,repl_backlog_buffer
是环形的,就存在覆盖的问题,从库重连后,会发送从库的offset,如果没有被覆盖就同步增量,否则同步全量,增量同步时是通过replicatin buffer传送给从库的
repl_backlog_buffer大小,使用repl_backlog_size,默认值为1M

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值