什么是主从同步?
单节点的Redis的并发能力是有上限的,要进一步提高Redis的并发能力,所以我们要搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据。
主从同步的流程?
全量同步:
- 从节点请求主节点,申请进行同步(发送repalication id,offest)
- 主节点进行判断,若与自己的repalication id不相等,则表明是第一次同步,这时主节点与从节点进行版本信息同步(同步repalication id和offest)。若与自己的repalication id相等,则表明不是第一次同步,则进行后续操作。
- 主节点执行bgsave,生成rdb文件,发送给从节点去执行。
- 在生成rdb文件时,主节点会将接受的其他命令记录到缓冲区(一个日志文件)。
- 把生成之后的日志文件发送到从节点进行同步。
增量同步:
- 从节点主动申请同步主节点,主节点判断不是第一次请求,获取从节点的偏移量(offest)。
2. 主节点从日志文件获取offest之后的数据,发送给从节点进行数据同步。