架构概述
集群架构是基于社区版 Redis Cluster 打造的分布式缓存架构,兼容 Redis 4.0、5.0、6.2、7.0及 Valkey 8.0及以上版本协议。系统采用分布式分片设计,支持1~128个分片的水平扩展和1~5个副本的垂直扩展,可提供千万级 QPS 的高性能。扩容、缩容、迁移过程对业务几乎无感知,保障服务高可用。具体性能数据,请参见 规格与性能。
核心组件
组件 | 说明 |
分片 Shard | 分布式存储的最小逻辑单元。集群将16384个哈希槽(Slot)分配至各分片。每个分片由一个主节点及若干副本节点组成,负责存储对应槽位的数据,并支持在线数据均衡与动态迁移。 |
主节点 Master | 分片内负责处理读写请求的核心节点。每个分片有且仅有一个主节点,负责数据写入并实时同步至其所属的副本节点。 |
副本节点 Replica | 分片内负责数据冗余与高可用的节点。实时同步主节点数据;当主节点发生故障时,系统会自动将其中一个副本节点提升为新主节点。 |
代理层 Proxy 集群 |
实现介绍
实例对外提供统一的虚拟 IP 访问地址(VIP:Port)。客户端可直接使用标准 Redis 客户端(如 redis-cli、Jedis、Lettuce)进行连接,由内置的 Proxy 组件解析命令并按槽位路由至对应分片。Proxy 支持部分跨槽命令的聚合处理,且透明承载扩缩容、故障切换等拓扑变更,业务侧无需感知。

连接示例
集群架构连接模式支持业界主流的多语言 Redis 客户端。下表列出各开发语言推荐的客户端及其在代理模式下使用的连接类,单击对应语言可跳转至详细连接示例。连接前的准备工作、认证方式与连接验证等通用说明,请参见 连接准备。
开发语言 | 推荐客户端 | 推荐版本 | 连接类 | 连接示例 |
Java | Jedis | 5.1.2及以上 | JedisPool | |
Java | Lettuce | 6.3.0及以上 | RedisClient | |
Python | redis-py | 最新稳定版 | redis.Redis | |
Go | go-redis | v9 | redis.NewClient | |
Node.js | node-redis / ioredis | 最新稳定版 | createClient / new Redis() | |
PHP | phpredis | 5.0及以上 | Redis | |
C | hiredis | 最新稳定版 | redisConnect | |
.Net | StackExchange.Redis / ServiceStack.Redis | 最新稳定版 | ConnectionMultiplexer |
分片与副本配置
分片数越多,容量和性能越高。所有分片均参与数据存储和请求处理。分片数 ≥ 1 时,数据自动按哈希槽分布,在水平方向扩展存储容量和吞吐性能。
副本数越多,可用性越高。所有副本节点均参与高可用切换。副本数 ≥ 1 时,可开启读写分离功能,在垂直方向扩展读性能。具体信息,请参见 读写分离。
说明:
配置项 | 可选规格 |
分片规格(GB) | 1、2、4、8、12、16、20、24、32、40、48、64GB |
分片数量 | 1、3、5、8、12、16、24、32、40、48、64、80、96、128 |
副本数量 | 1、2、3、4、5 |
规格上限
规格项 | 上限 | 说明 |
总存储容量 | 8TB | 128分片 × 64GB/分片 |
并发性能 | 千万级 QPS |