更新时间:2024-07-29 GMT+08:00

如何理解分片数与副本数?

什么是分片

分片也叫条带,指Redis集群的一个管理组,对应一个redis-server进程。一个Redis集群由若干条带组成,每个条带负责若干个slot(槽),数据分布式存储在slot中。Redis集群通过条带化分区,实现超大容量存储以及并发连接数提升。

每个集群实例由多个分片组成,每个分片默认为一个双副本的主备实例。分片数等于实例中主节点的个数。

什么是副本

副本指缓存实例的节点,包含主节点和备节点。单副本表示实例没有备节点,双副本表示实例有备节点(一个主节点,一个备节点)。例如主备实例的副本数设置为3时,表示该实例有1个主节点,2个备节点。

不同实例类型的副本和分片数

  • 单机实例:单机实例只有1个节点,1个Redis进程,当Redis进程故障后,DCS为实例重新拉起一个新的Redis进程。
  • 主备实例:分片数为1,包含一个主节点,一个或多个备节点。当主节点出现故障时,会进行主备倒换,恢复业务。
  • 集群实例:集群实例由多个分片组成,每个分片默认是一个双副本的主备实例。例如一个3分片,2副本的集群实例,则每个分片都有2个节点(1个主节点,1个备节点)。

    实例类型

    分片数

    副本数

    负载均衡

    占用IP数

    单机

    单分片

    单副本,不支持多副本

    -

    1个

    主备

    单分片

    默认双副本

    Redis 4.0/5.0版本主备实例支持2-10副本,其他版本仅支持2副本

    不支持

    占用IP个数=副本数

    Proxy集群

    多分片

    双副本,不支持其他副本数

    支持

    1个

    Cluster集群

    多分片

    默认双副本

    Redis 4.0/5.0版本Cluster集群支持1-5副本,Redis 6.0版本支持1-2副本

    不支持

    占用IP个数=副本数*分片数