Redis的集群模式--主从复制

122 阅读2分钟

一、概述

在redis中提供的集群方案共有三种:主从复制、哨兵模式、分片集群。 今天就来讲一下主从复制的集群方案。

二、什么是主从复制?

单节点redis的并发能力是有上限,要进一步提高redis的并发能力,就需要搭建主从集群,实现读写分离。

1688738482139.jpg

三、主从数据同步的原理

主从数据同步分为两个阶段:一阶段是全量同步、二阶段是增量同步。 全量同步发生在master同slave第一次同步的时候。剩下的是增量同步。

1、主从全量同步

1688740386382.jpg

名词解释

  1. Replication Id: 简称replid, 是数据集的标记,id一致则说明是同一数据集,每一个master都有唯一的replid, slave则会集成master节点的replid。
  2. offset:偏移量。随着记录在repl_backlog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。
  1. 全量同步的过程如上图所示。
  2. master如何判断是否为第一次同步呢?
  • slave在向master发送请求数据同步时,会把replid一起发送过去。master判断slave发送过来的replid是否与自己的一致。如果不一致,则认为是第一次同步。如果一致,则认为之前已经同步过了。第一次同步时,master把自己的replid发送给slave,slave记录下来,后面的同步过程中使用。
  1. slave第二次、第三次...同步数据时,要从repl_backlog中读取多少数据呢?
  • master只有在第一次同步时生成RDB文件,其他的同步master将repl_backlog文件中的数据发送给slave。第一次同步时,master会把offset传给slave。假如第一次同步后,slave记录的offset是50,但是master中的offset变成了80,那么50~80的这部分数据就是第二次要同步的。以此类推。

2、主从增量同步

主从增量同步发生在slave重启或者后期数据有变化的情况下。

1688743211892.jpg

四、主从复制的优缺点

  1. 缺点:只有一个master节点,一旦master节点宕机了,整个集群就不可用了。不满足高可用的特性。
  2. 优点:一主多从,读写分离,实现了高并发的特性。