当前位置: 首页 > news >正文

详解 Redis repl_backlog_buffer(如何判断增量同步)

一、repl_backlog_buffer

复制积压缓冲区(Replication Backlog Buffer) 是一个环形内存区域(Ring Buffer),用于临时保存主节点最近写入的写命令,以支持从节点断线重连后的增量同步

1.1 三个复制偏移量

复制偏移量(offset)是一个 64 位无符号整数,是主节点为所有写入操作生成的全局连续递增的序列号,表示从主节点启动以来所有写命令的字节总量(按 Redis 协议格式序列化后的字节数)。

例如:主节点执行 SET key value,这条命令会被序列化成 Redis 协议格式(如 *3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n),总字节数为 30 字节。此时,主节点的 master_repl_offset 会递增 30。

Redis 的设计目标是长期运行的高吞吐系统。假设每秒写入 100MB 数据:耗尽时间 ≈ 1.84e19 / (100 * 1e6) / 31536000 ≈ 5845 年

  1. master_repl_offset:主节点复制偏移量,表示主节点已写入的复制数据流的总字节数
    1. 主节点重启或故障切换后,新主节点的 master_repl_offset 会重置;
  2. slave_repl_offset:从节点的复制进度;
  3. backlog_first_byte_offset:repl_backlog_buffer 的起始偏移量
    1. slave_repl_offset >= backlog_first_byte_offset,则增量同步;否则需全量同步;

1.2 repl_backlog_buffer 清理时机

  1. 缓冲区写满时覆盖旧数据:按照 FIFO 的方式循环覆盖旧数据;
  2. 所有从节点断开连接时释放缓冲区;

相关文章:

  • 2025年智能 ITSM产品推荐
  • Elasticsearch | ES索引模板、索引和索引别名的创建与管理
  • “图生生”AI生图优化升级,DeepSeek加持体验更优!
  • SAN及其ZONE
  • 【kind管理脚本-2】脚本使用说明文档 —— 便捷使用 kind 创建、删除、管理集群脚本
  • JavaScript学习教程,从入门到精通,JavaScript 数据类型详解(7)
  • 《AI开发工具和技能实战》专栏规划:从工具到应用的全链路指南
  • IntelliJ IDEA使用技巧(json字符串格式化)
  • vue3+vue-router4的安装使用以及路由守卫
  • Android audio(2)-audioservice
  • 蓝桥杯-卡片
  • android wifi 连接流程(framework)
  • k8s之Service类型详解
  • 01-Redis-基础
  • JavaScript 用法详解
  • C++使用WebView2控件,通过IPC通信与Javascript交互
  • 蓝桥杯-门牌制作
  • JVM生产环境调优实战
  • 如何将 对个 把b3dm 合并成一个模型
  • pnpm 中 Next.js 模块无法找到问题解决
  • 做支付行业招代理一般上什么网站/网站推广方案策划书2000
  • 哪个网站做外贸好/有哪些平台可以做推广
  • 做网站公司在哪/免费写文章的软件
  • 做高档衣服的网站/上海优化价格
  • 自己做网站图片存在哪里/可以免费打广告的网站
  • 网站文字格式/深圳竞价托管公司