Cluster集群实例
Cluster版Redis集群兼容开源Redis的Cluster,基于smart client和无中心的设计方案,对服务器进行分片。
Cluster版Redis集群每种实例规格对应的分片数,如表1所示。
在创建D CS 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预分片示意图