《Redis设计与实现》Part03 第15章~第17章
第15章 复制 在redis中可以通过slaveof命令或者选项,让一个服务器取复制另一个服务器 旧版复制功能的实现 两个操作: 同步(sync) 命令传播(command propagate) 旧版复制功能的缺陷 初次复制 断线后重新复制 (效率低) sync是一个非常耗费资源的操作 新版复制功能的实现 使用psync,它的两种模式: 完整重同步 部分重同步 部分重同步的实现 主服务器的复制偏移量 从服务器的复制偏移量 主服务器的复制积压缓冲区 固定长度的先进先出队列,默认1MB 可以根据公式second * write_size_per_second来估算 服务器的运行id PSYNC命令的实现 复制的实现 设置主服务器的地址和端口 建立套接字连接 发送ping命令 身份验证 发送端口信息 同步 命令传播 心跳检测 在命令传播阶段,从服务器默认以每秒一次的频率,向主服务器发送命令replconf ack <replication_offset> 该命令有三个作用: 检查主从服务器的网络连接状态 辅助实现min-slave选项 min-slaves-to-write和min-slaves-max-lag两个选项可以防止主服务器在不安全的情况下执行写命令 检测命令丢失 检测到写命令丢失,则部分同步 第16章 Sentinel 由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主从服务器...