zoukankan      html  css  js  c++  java
  • redis 主从复制 过程

    1.redis 内部会发出一个同步命令,刚开始是Psync ? -1 表示要求master主机同步数据
    2.主机会向从机发送 runid 和 offset,因为slave并没有对应的offset,所以是全量复制
    3.从机slave会保存主机master的基本信息 save masterInfo
    4.主节点收到全量复制的命令后,执行bgsave(异步执行),在后台生成RDB文件(快照,4.0之后不用生成RDB文件也可以,使用无磁盘化复制),并使用一个缓冲区(称为复制缓冲区,会记录偏移量)记录从现在开始的写命令
    5.主机send RDB 文件给从机
    6.发送缓冲区数据
    7.刷新旧的数据,从节点在载入主节点的数据之前要先将老数据清除
    8.加载RDB 文件将数据库状态更新至主节点执行bgsave时的数据库状态和缓冲区数据的加载

    -----部分复制------
    1.如果出现网络抖动(连接断开 connection lost)
    2.主机master 还是会写 replbackbuffer(复制缓冲区)
    3.从机slave 会继续尝试连接主机
    4.从机slave会把自己当前runid和偏移量传输给主机master,并且执行pysnc命令同步
    5.如果master发现你的偏移量是在缓冲区范围内,就会返回continue命令
    6.同步了offset的部分数据,所以部分复制的基础就是偏移量offset

  • 相关阅读:
    jfinal使用配置文件注意事情
    在项目中集成jetty server
    JFinal快速上手及注意事项
    表单处理的方案与注意事项(servlet)
    java四大会话技术
    servlet过滤器简化版
    python 生成器
    python 深复制和浅复制
    python 获取路径
    python selenium定位总结(转)
  • 原文地址:https://www.cnblogs.com/xivzhou/p/14331356.html
Copyright © 2011-2022 走看看