五) Redis的主从复制同步过程

部分参考
https://blog.csdn.net/jiang1013nan/article/details/19678227
https://blog.csdn.net/sk199048/article/details/50725369

redis的主从复制分为两种:全量同步和增量同步。全量同步发生在slave初始化阶段,后续都是增量同步。

  1. 全量同步
    1)从机向主机发起一个同步指令sync
    2)主机redis收到该指令后会执行BGSAVE命令,该命令类似于RDB持久化,会生成一个快照文件并使用缓冲区记录此后执行的所有写命令(具体也是参照RDB方式,fork中一个子进程,用于生成快照文件)
    3)主redis执行BGSAVE完毕后,向所有从redis发送RDB文件,并在发送期间继续记录被执行的写命令;
    4)从redis收到RDB快照文件后丢弃所有旧数据,载入收到的快照;
    5)主redis发送快照完毕后开始向从redis发送缓冲区的写命令;
    6)从服务器完成对快照的载入后,开始接收写命令,并执行这些写命令
    在这里插入图片描述

2)增量同步
增量同步就是Slave初始化后开始正常工作或,主服务器发生的写操作会同步到从服务器的过程。它是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。

主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。

猜你喜欢

转载自blog.csdn.net/xiaohesdu/article/details/87906271