Redis--集群

主服务器:master

从服务器:slave 

命令:SLAVEOF  ip port    (在slave中执行该命令,则将ip对应的服务器设置为主服务器。)

主从同步是实现步骤:(用于新的同步)

  1、从服务器向主服务器发送SYNC命令。

  2、主服务器收到命令后,执行BGSAVE命令,生产RDB文件,并使用一个缓冲区记录从现在开始主服务器执行的所有写命令。

  3、当RDB文件生成完毕,主服务器将文件发送给从服务器,从服务器解析RDB文件,完成主从的同步状态。

  4、主服务器将缓冲区记录的写命令,发送给从服务器,从服务器执行这些命令。最终完成服务器的主从同步(命令传播)。

部分同步的实现原理:(用于断线重链同步)

  1、主从服务器的复制偏移量(偏移量相当于执行的步骤id,每次执行一个命令,就步进1)。

  2、主服务器的写命令缓冲区(长度固定的队列,默认1MB,先进先出)。

  3、服务器的运行ID(每个Redis都有对应的运行ID,运行ID在服务器运行的时候,自动生成。在首次同步时,从服务器会保存主服务器的ID)。

实现步骤:

  1、断线重连后,从服务器向主服务器发送偏移量。主服务器根据从服务器的偏移量,在缓存区中寻找对于的值,如果找到则执行部分同步,如果没找到则执行全量同步。

  2、根据偏移量从缓冲区找到对应的命令列表,然后发送给从服务器(命令传播)。

  3、只有断线重连后,从服务器发生的主服务器ID与当前的主服务器ID一致时,才可以进行部分同步。否则进行全量同步。 

猜你喜欢

转载自www.cnblogs.com/chen--biao/p/9896989.html