DCS Redis的集群实例有两种版本可供选择,一种是基于LVS+Proxy的高可用集群版本(以下简称为Proxy版Redis集群),另一种是原生Cluster的集群版本。Proxy版集群兼容开源Redis 3.0,Cluster版本兼容开源Redis的4.0、5.0及6.0。
Redis4.0、Redis5.0、Redis6.0 Cluster集群实例
Cluster版Redis集群兼容开源Redis的Cluster,基于smart client和无中心的设计方案,对服务器进行分片。
Cluster版Redis集群每种实例规格对应的分片数,如下表所示。
每个分片的大小=实例规格/分片数 ,例如,集群规格为48GB的实例,分片数为6,则每个集群分片的大小为48G/6=8G。
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 |
- 无中心架构
Redis Cluster的任意节点都可以接收请求,但节点会将请求发送到正确的节点上执行,同时,每一个节点也是主从结构,默认包含一个主节点和一个从节点,由Redis Cluster根据选举算法决定节点主从属性。
Redis Cluster无中心架构
- 数据预分片
Redis Cluster会预先分配16384个slot,每个Redis的server存储所有slot与redis server的映射关系。key存储在哪个slot中,由Crc16(key) mod 16384的值决定。如下图所示:
Redis Cluster预分片示意图