更新时间:2024-10-25 GMT+08:00
分享

Redis Cluster集群实例

DCS Redis Cluster集群实例,是原生Cluster的集群版本。Redis Cluster集群实例的特点:

  • 兼容Redis原生Cluster集群。
  • 继承smart client的设计方案。
  • 相比主备,数倍性能提升。

Redis Cluster集群实例支持从客户端实现读写分离,相关操作请参见Cluster集群实例读写分离

  • Redis版本不支持升级,例如,Redis 4.0 Cluster集群不支持升级为Redis 5.0 Cluster集群实例。如果需要使用高版本Redis Cluster集群实例,建议重新创建高版本Redis Cluster集群实例,然后将原有Redis实例的数据迁移到高版本实例上。
  • 客户端连接Redis Cluster集群实例与连接单机、主备、Proxy集群实例的方式不同,具体请参见使用客户端连接Redis

Cluster集群实例架构

Cluster版Redis集群兼容开源Redis的Cluster,基于smart client和无中心的设计方案,对服务器进行分片。

Cluster版Redis集群每种实例规格对应的分片数,如表1所示。

在创建DCS Cluster集群实例时,可以自定义分片大小。如果不自定义分片大小,使用系统默认分片,每个分片的大小=实例规格/分片数,例如,集群规格为48GB的实例,分片数为6,则每个集群分片的大小为48GB/6=8GB。

表1 Cluster集群实例规格和分片数的对应关系

集群版规格

分片数

4GB/8GB/16GB/24GB/32GB

3

48GB

6

64GB

8

96GB

12

128GB

16

192GB

24

256GB

32

384GB

48

512GB

64

768GB

96

1024GB

128

2048GB

128

  • 无中心架构

    Redis Cluster的任意节点都可以接收请求,但节点会将请求发送到正确的节点上执行,同时,每一个节点也是主从结构,默认包含一个主节点和一个从节点,由Redis Cluster根据选举算法决定节点主从属性。

    图1 Redis Cluster无中心架构
  • 数据预分片

    Redis Cluster会预先分配16384个slot,每个Redis的server存储所有slot与redis server的映射关系。key存储在哪个slot中,由Crc16(key) mod 16384的值决定。如下图所示:

    图2 Redis Cluster预分片示意图
    • Redis Cluster集群的每个分片也是一个Redis主备实例。当分片上的主节点故障时,该分片上的连接会有秒级中断、不可用,备节点在15秒到30秒内自动完成主备切换,单分片故障仅影响该分片上的数据访问,不影响其他分片上的数据访问。
    • Redis集群单分片主节点故障时,主备切换完成后,该分片原主节点(已切换为从节点)因故障不会立刻恢复,业务继续访问该分片原主节点会失败,可通过配置Redis SDK解决此类情况,具体请参见使用客户端连接Redis

相关文档