Skip to content

一、使用场景

  • 高并发、高可用

二、主从复制

  • 主从复制: 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离
  • 主从数据同步原理:

1.全量同步

第一次

    1. slave 从节点: 执行 replicaof 命令建立连接。
    1. slave 从节点: 向 master节点, 请求数据同步 发送请求数据同步携带 replid、offset
    1. master主节点: 收到 slave从节点请求,判断是否是第一次同步(通过判断 replid 是否一致)。
    1. master主节点: 如果是第一次,发送 master 数据版本信息 replid、offset 给到 slave 从节点。
    1. slave 从节点: 保存master返回的版本信息,进行保存。
    1. master主节点: 执行bgsave命令,生成 RDB 文件。
    1. master主节点: 发送RDB 文件,给slave从节点。
    1. slave 从节点: 清空本地数据,加载RDB文件。
    1. master 主节点: 如果在执行期间同步数据给 slave 节点时, 存在其他写入操作到 master 主节点时, 主节点会记录 RDB 期间的所有命令,写入到 repl_baklog 文件。
    1. master主节点: 发送 repl_baklog 文件中的命令 slave 从节点。
    1. slave 从节点: 接收的命令。

2.增量同步

slave节点重启:

    1. slave 从节点:发送 psync replidoffset => 告诉 master节点 。
    1. master主节点: 判断是否和replid一致,不是第一次,回复 continue, => 给到slave节点
    1. master主节点: 去 repl_baklog 中获取 offset 后的数据。
    1. master主节点: 发送 offset 命令给 => 给 slave 节点。
    1. slave 从节点: 执行 offset命令。

三、哨兵模式

四、分片集群

五、面试题

:: details :: details :: details :: details :: details