文章目录
redis主从同步核心
我们学习redis主从同步的时候一上来就深入看某个参数的意思,而对整个主从同步没有一个概览,这样学习的顺序是反的,导致学习效率不高,每次都学不透。
应该先搞懂主从复制有几个阶段?每个阶段具体都是做什么?每个阶段的参数都有哪些?再结合redis 的log来理解.
redis主从同步的四个阶段
-
初始化阶段
此阶段就是告诉你要从哪里同步,例如有A、B连个reids实例,在B上执行slaveof + ip + port(redis 5.0之后是replicof + ip+ port)
-
建立连接
一旦实例A获得了主库IP和端口号,该实例就会尝试和主库建立TCP网络连接,并且会在建立好的网络连接上,监听是否有主库发送的命令。
-
主从握手
握手过程就是主从库间相互发送PING-PONG消息,同时从库根据配置信息向主库进行验证。最后,从库把自己的IP、端口号,以及对无盘复制(repl-diskless-sync)和PSYNC 2协议的支持情况发给主库。
-
复制类型判断和执行
握手完成后,从库就会给主库发送PSYNC命令。紧接着,主库会根据从库发送的命令参数作出相应的三种回复,分别是执行全量复制、执行增量复制、发生错误