bobby.peng

zhendecai

  • 主页
  • 技术
  • 杂谈
  • Tips
所有文章 友链 关于我

bobby.peng

zhendecai

  • 主页
  • 技术
  • 杂谈
  • Tips

redis复制

2018-04-10

slaveof 命令

如果是通过配置文件配置的主从,主会广播,但是通过slaveof 命令返回ok的主从,只有第一次复制数据(todo 为什么)

全量复制

  • 主服务器调用bgsave,生成rdb文件
  • 生成rdb文件的同时,将增量的命令写入缓冲区暂存
  • rdb同步给从服务器
  • 缓冲区命令发送给从服务器
  • 达到一致的状态

缺点

bgsave的成本很高,如果仅仅是短时间断线,全量的数据同步有点不靠谱

增量复制

  • 主服务器和从服务器同时维护一个偏移量,偏移量大小为同步的字节数
  • 当主从一致的时候,偏移量大小是一致的
  • 偏移量不一致的时候,主服务器会维护一个定长队列来存储最近一部分的命令,带有偏移量标识,用于同步
  • 如果需要同步的值超过了队列的大小,那么就要启用全量同步了

之前有个问题一直没有想明白。由于所有的命令不一定都是幂等操作,命令+偏移量也不一定是一个原子操作,那么是先修改偏移量还是先执行命令,好像都有问题

现在想明白了,增量复制仅适用于网络波动,而不适用于机器挂了的情况。如果机器挂了,偏移量也没了,毕竟不落地,全量很安全。

  • redis
  • tech

扫一扫,分享到微信

微信分享二维码
AQS(简要)
redis键过期
Like Issue Page
Loading comments...
Login with GitHub
Styling with Markdown is supported
Powered by Gitment
© 2018 bobby.peng
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • tree
  • cocurrent
  • java
  • 复习
  • mysql
  • data-structure
  • ximalaya
  • redis
  • wow
  • 转载
  • jvm
  • concurrent
  • aqs
  • Spring
  • io

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 麻子
  • 王鸿缘
  • 美团技术博客
  • 何登成的技术博客
  • 并发编程网
Blizzard fans
wow & overwatch
Arena master & Gladiator