redis主从复制的依据
时间: 2024-08-16 16:00:55 浏览: 130
Redis3.2.1 集群(包含主从,哨兵机制)
Redis主从复制的依据主要是基于一种称为复制偏移量(replication offset)的机制,以及复制积压缓冲区(repl-backlog buffer)和命令传播(command propagation)三个关键部分。
1. 复制偏移量:每个Redis服务器(无论是主服务器还是从服务器)都有一个复制偏移量,它记录了复制数据流中的字节位置。每当主服务器向从服务器发送N字节数据时,它的复制偏移量就会增加N,同样,从服务器接收数据后也会增加相应的N。
2. 复制积压缓冲区:这是一个固定大小的环形缓冲区,当从服务器连接到主服务器并开始复制时,主服务器会将缓冲区中保存的数据发送给从服务器。这个缓冲区的作用是避免全量复制的开销,因为如果从服务器离线了一段时间,它可以只接收断开连接期间丢失的命令而不是全量数据。
3. 命令传播:当主服务器执行写命令时,这个写命令会被传播到所有连接的从服务器中,这样就保证了数据的一致性。
主从复制的过程大致如下:
1. 从服务器向主服务器发送SYNC命令。
2. 主服务器接收到SYNC命令后,开始执行BGSAVE命令,生成一个RDB文件,并用这个文件来回复从服务器的同步请求。
3. 主服务器将生成的RDB文件发送给从服务器,从服务器接收并载入这个文件,完成数据的一致性。
4. 之后,主服务器将接收到的命令,通过复制偏移量和复制积压缓冲区,将增量更新发送给从服务器。
阅读全文