Redis主从复制原理

持久化机制是在一台Redis主机上进行操作,如果这台机器出了问题,如果是持久化数据的硬盘出了问题,那数据就会丢失。主从复制就是为了解决单点故障的。

 同时,主从模式下采用的是读写分离来对外提供服务

 于是,将主服务器和从服务器之间的数据保持一致性就显得很重要了。

第一次同步

主要有三个步骤:

第一阶段:建立链接、协商同步。从服务器发送psync命令,包含两个参数,runid和offset,第一次全量复制会将offset设置为-1,runid设置为?;主服务器收到psync命令后,会用FULLPESYNC来作为响应

第二阶段:主服务器同步数据给从服务器。 主服务器通过bgsave(异步)生成RDB文件,发给从服务器,然后从服务器收到RDB文件后,会先清空自己的数据,然后加载RDB文件。

第三阶段:主服务器发送新写的操作命令给从服务器。 第二阶段的过程中,主服务器生成RDB文件的时候,主服务器发送RDB文件给从服务器的时候,从服务器加载RDB文件的时候,如果主服务器有新产生的数据,这个时候,为了保证数据的一致性,会执行第三阶段,上面三个时间段里面新生成的数据会被主服务器写到replication buffer缓冲区里面。

增量复制

主从服务器网络断开又恢复后,从服务器会采用增量复制的方式继续同步。

这个过程的增量复制主要有三个步骤

第一阶段:从服务器恢复网络之后,会发送psync命令给主服务器,此时的psync命令里面的offset参数不是-1

第二阶段:从服务器收到该命令之后,使用CONTINUE响应命令告诉从服务器接下来采取增量复制的方式同步数据

第三阶段:主服务器将主从服务器断线期间,所执行的写命令发送给从服务器,然后从服务器执行这些命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值