Redis 的复制拓扑结构可以支持单层或多层复制关系, 根据拓扑复杂性可以分为以下三种: 一主一从、一主多从、树状主从结构

1. 一主一从结构

  1. 用于主节点出现宕机时从节点提供故障转移支持
  2. 当应用写命令并发量较高且需要持久化时, 可以只在从节点上开启 AOF, 这样既保证数据安全性同时也避免了持久化对主节点的性能干扰
    1. 如果 master 重启, 那么 slave 要使用 slaveof no one 命令断开复制, 避免 master 重启清空数据的操作也复制到 slave 上

image.png

2. 一主多从结构

又称为星形拓扑结构

  • 实现读写分离
  • 对于写并发量较高的场景, 多个从节点会导致主节点写命令的多次发送从而过度消耗网络带宽, 同时也加重了主节点的负载影响服务稳定性

image.png

3. 树状主从结构

又称为树状拓扑结构, 使得从节点不但可以复制主节点数据, 同时可以作为其他从节点的主节点继续向下层复制

  • 通过引入复制中间层, 可以有效降低主节点负载和需要传送给从节点的数据量

image.png