zoukankan      html  css  js  c++  java
  • 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一致时,才可以进行部分同步。否则进行全量同步。 

  • 相关阅读:
    BZOJ 1143 [CTSC2008]祭祀river
    BZOJ 3997 [TJOI2015]组合数学
    BZOJ 3996 [TJOI2015]线性代数
    BZOJ 4553 [Tjoi2016&Heoi2016]序列
    微信开发之密文模式 mcrypt_module_open 走不过
    JS JSON & ARRAY 遍历
    linux ftp服务器配置(Ubuntu)
    thinkphp 吐槽篇
    游戏--疯狂猜字随机混乱正确答案逻辑
    PHP 批量去除BOM头;此文转载;
  • 原文地址:https://www.cnblogs.com/chen--biao/p/9896989.html
Copyright © 2011-2022 走看看