1. 什么是redis主从同步?
单间点的redis并发能力是有上限的,要进一步提高redis的并发能力,就需要搭建主从集群,实现读写分离。
一般都是一主多从,主节点负责写数据,从节点负责读数据。
2. 主从同步数据的流程?
master:主节点。
slave:从节点。
replication_id:简称replid,是数据集的标记,id一致则说明是统一数据集。每个master都有唯一的replid,slave则会继承master节点的replid。
offset:偏移量。随着记录repl_baklog中的数据增多而逐渐增大, slave完成同步时也会同步当前的offset,如果slave节点的offset小于master的offset,则表示当前的slave数据不是最新的。
2.1 全量同步数据?
流程图:
流程:
1. 从节点请求主节点同步数据(会带有replid和offset);
2. 主节点判断是否是第一次请求,是第一次就与从节点同步replid和offset;
3. 主节点执行bgsave命令,生产RDB文件,发送到从节点执行;
4. 在RDB生成执行期间,主节点中产生的数据会以命令的形式写到缓冲区(即记录文件repl_baklog);
5. 把生成之后的记录文件发送到从节点同步。
2.2 增量同步数据?
流程图:
流程:
1. 从节点请求主节点同步数据,主节点判断是不是第一次请求,如果不是第一次请求就取从节点的offset值;
2. 主节点根据从节点取到的offset值之后的数据,发送给从节点进行数据同步。