zoukankan      html  css  js  c++  java
  • Redis基础篇(六)数据同步:主从复制

    第一步,主从库建立连接,协商同步。

    从库发送psync命令,表示进行数据同步。其中runID表示主库ID,第一次不知道主库的runID,就设置为"?"
    主库收到psync命令后,用FULLRESYNC响应,返回runID(主库ID)和offset(主库目前的复制进度)。
    从库收到响应后,记录这两个参数
    第二步:主库同步数据给从库。

    从库收到数据后,在本地完成数据加载。这过程依赖于RDB快照。

    主库执行bgsave命令,生成RDB文件,再把文件发强从库。
    从库收到RDB文件后,先清空当前数据库,然后加载RDB文件。
    第三步,主库发送新写命令给从库

    主库在数据同步过程中,会记录所有写操作,避免丢失同步过程接收的新的写命令。

    主库使用replication buffer来新的写命令。
    当从库加载RDB文件完成后,主库再把replication buffer的内容发送给从库,从库再执行这些操作实现同步。
    关于replication buffer的更多内容,下面再介绍。

    如果有多个从库,每个从库都要跟主库进行全量同步,这样主库的压力会很大。

  • 相关阅读:
    借了个屏幕来用
    生命开始的地方
    看了STLPort的安装方法,晕了
    程序员必备的10大健康装备!
    《代码整洁之道》读书笔记
    Mockito使用
    学习Emacs的理由
    shell 脚本编程的10 个最佳实践
    MongoDB入门
    用Orgmode实践《奇特的一生》
  • 原文地址:https://www.cnblogs.com/chen991126/p/14215383.html
Copyright © 2011-2022 走看看