Felix's BlogFelix's Blog
  • 首页
  • 提示
  • 基础环境整理
  • 计算机基础
  • Java
  • 数据库
  • 消息中间件
  • Spring
  • 其他框架
  • 其他
  • Java
  • 集合
  • JVM
  • 并发
  • 亿级流量 Java 高并发与网络编程实战
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • 分布式
  • 任务调度
  • MySQL
  • Redis
  • Elasticsearch
  • HugeGraph
  • ClickHouse
  • Kafka
  • RabbitMQ
  • ActiveMQ
  • Nats
  • Nginx
  • 核心软件
  • 后端
  • 前端
  • 测试
  • Unity
  • 我的菜谱
Series
1 RedisRedis 安装(常规)Redis RPM 制作Redis 安装(RPM 自给自足安装)
第一部分 数据结构与对象
  • 2 简单动态字符串
  • 3 链表
  • 4 字典
  • 5 跳跃表
  • 6 整数集合
  • 7 压缩列表
  • 8 对象
第二部分 单机数据库的实现
  • 9 数据库
  • 10 RDB 持久化
  • 11 AOF 持久化
  • 12 事件
  • 13 客户端
  • 14 服务器
第三部分 多机数据库的实现
  • 15 复制
  • 16 sential
  • 17 集群
第四部分 独立功能的实现
  • 18 发布和订阅
  • 19 事务
  • 20 LUA 脚本
  • 21 排序
  • 22 二进制位数组
  • 23 慢查询日志
  • 24 监视器

15 复制

felix.shao2025-02-18

15 复制

  • 概述
  • 旧版复制功能的实现
    • 同步
    • 命令传播
  • 旧版复制功能的缺陷
  • 新版复制功能的实现
  • 部分重同步的实现
    • 复制偏移量
    • 复制积压缓冲区
    • 服务器运行 ID
  • PSYNC 命令的实现
  • 复制的实现
    • 步骤 1:设置主服务器的地址和端口
    • 步骤 2:建立套接字连接
    • 步骤 3:发送 PING 命令
    • 步骤 4:身份验证
    • 步骤 5:发送端口信息
    • 步骤 6:同步
    • 步骤 7:命令传播
  • 心跳检测
    • 检测主从服务器的网络连接状态
    • 辅助实现 min-slaves 配置选项
    • 检测命令丢失
  • 参考文献

概述

 详细内容略,可参考目录结构理解内容。

旧版复制功能的实现

同步

命令传播

旧版复制功能的缺陷

新版复制功能的实现

部分重同步的实现

复制偏移量

复制积压缓冲区

服务器运行 ID

PSYNC 命令的实现

复制的实现

步骤 1:设置主服务器的地址和端口

步骤 2:建立套接字连接

步骤 3:发送 PING 命令

步骤 4:身份验证

步骤 5:发送端口信息

步骤 6:同步

步骤 7:命令传播

心跳检测

检测主从服务器的网络连接状态

辅助实现 min-slaves 配置选项

检测命令丢失

参考文献

  • Redis 设计与实现-第 2 版open in new window
Last Updated 2/18/2025, 5:05:12 PM

16 sential →

ON THIS PAGE
  • 概述
  • 旧版复制功能的实现
  • 同步
  • 命令传播
  • 旧版复制功能的缺陷
  • 新版复制功能的实现
  • 部分重同步的实现
  • 复制偏移量
  • 复制积压缓冲区
  • 服务器运行 ID
  • PSYNC 命令的实现
  • 复制的实现
  • 步骤 1:设置主服务器的地址和端口
  • 步骤 2:建立套接字连接
  • 步骤 3:发送 PING 命令
  • 步骤 4:身份验证
  • 步骤 5:发送端口信息
  • 步骤 6:同步
  • 步骤 7:命令传播
  • 心跳检测
  • 检测主从服务器的网络连接状态
  • 辅助实现 min-slaves 配置选项
  • 检测命令丢失
  • 参考文献