大家好,我是程序媛雪儿,redis集群方案有三种,主从复制,哨兵模式,分片集群,今天咱们聊聊redis主从复制。
一、是什么
为了提高redis的并发能力,需要搭建主从集群,实现读写分离。主节点负责写数据,从节点负责读数据。
主从全量同步:(第一次同步)
主从增量同步:(不是第一次同步)
二、相关概念
Replication Id:数据集的标志,如果id一致说明是同一数据集,每个master都有自己唯一的replid,slave则会继承master的replid。(用来判断是否是第一次同步)
offset:偏移量,随着repl_backlog的数据增大而增大,如果slave发给master的offset小于master自己的offset,就说明slave的数据落后于master,要更新slave的数据。
三、过程描述
slave向master发送replid+offset。
master要判断replid是否和自己的一致,不一致说明是第一次同步,一致,说明不是第一次同步。
第一次同步:先返回版本信息(replid+offset),再进行rdb数据同步,因为有可能在rdb数据同步的时候,master又修改了一些数据,需要把这段时间修改数据的命令发给master再执行,保证第一次数据同步是完全一致的。
不是第一次同步:根据slave给的offset和master自己的offset,找到slave缺少的数据需要执行的命令,发送给slave,进行增量信息的数据同步。
欢迎大家关注我的微信公众号,程序媛雪儿,雪儿会定期在上面发布编程的知识碎片,雪儿是全栈,但是公众号目前主要还是发后端的技术,以后可能也会涉及到一些前端的知识,我们下期见,拜拜~