数据同步
在一个集群之中 数据同步是很重要的。
redis的集群有多种。 我们这次主要说 主从集群。
全量同步
既然是主从集群 那么肯定是 1个master节点 多个从节点。redis的集群中的第一次同步 我们叫 全量同步:
为什么要强调第一次? 因为如果你是第一次来 说明你什么都没有 我要给你我所有的数据 还有数据版本。(先给版本号 再执行bgsave 生成RDB. 这里为什么要bgsave 上一篇讲了 你直接save 是要占用主进程的)
这时候master的主进程继续接受各种请求, 子进程负责生成RDB文件
这里要注意一个细节。 子进程开始生成RDB文件同步从节点的时间内,你的master的数据可能又变了, 那么这部分多的 他会生成一个命令文件(AOF的感觉) 然后把这两大块 一起给从节点 这样就算完整了。
这就是从节点一次的同步 我们叫全量同步,因为你想 第一次同步说明从节点的redis毛都没有嘛。 所以要全量。
然后这里有一个关键问题:
master如果判断slave是不是第一次来同步数据?
简单来讲就是:
id是不是一致 不一致 说明你不是第一次来
如果id一致 说明你是已经来过了, 那么我们就按offset来判断,是不是需要做增量的同步。
这些过程 可以到redis集群启动的日志中看到。
有兴趣的兄弟可以去看一下。