reids的全量同步和增量同步

1、全量同步:

        (1)首先master和slave节点建立连接,连接之后,slave会向master发送增量同步(slave会携带自己的repid和offset),master接收了slave的增量同步请求之后,就会拿自身的replId和slave的replId进行判断,如果相同则进行增量同步,不相同则进行全量同步,之后master会将自己的replId和offset发送给slave。全量同步,master会执行bgsave生成自己的RDB文件,将自己的RDB文件发送给slave,slave清除原来已经有的RDB,将新的RDB加载到内存之中。

2、增量同步

        (1)从节点slave节点宕机或者重启之后,会与master节点进行增量同步。增量同步的过程:首先slave节点拿着自己的offset与master的offset进行比较,如果比较之后发现不同则进行增量同步,将两者相差的那部分log发送给slave节点。slave执行log文件,将数据补充完整,每当数据不一致的时候,都进行增量同步。

        (2)增量同步的要求:因为存放log的repl_backlog文件的大小固定,当log记录到log文件的大小之后,log就会覆盖log文件之前的文件(log文件是一个环形数组,类似于循环队列)。这个时候就会有一个问题,就是如果slave节点宕机恢复的时间比较长,master节点写的比较多,将slave节点记录的offset之后的数据进行了覆盖,这个时候如果还是增量同步的话,就会使数据丢失。这个时候就需要进行全量同步,跟第一次建立连接,第一次进行数据读取的全量同步一样。

3、redis主从集群的优化:

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值