连接模式
集群架构提供代理模式与直连模式两种客户端访问方式,核心差异在于请求路由的承担者不同,满足不同的业务场景需求。
说明:
直连模式当前处于灰度测试阶段,仅 Redis 7.0 集群架构支持。如需使用,请通过工单系统提交申请。
实现介绍
代理模式:实例对外提供统一的虚拟 IP 访问地址(VIP:Port)。客户端可直接使用标准 Redis 客户端(如 redis-cli、Jedis、Lettuce)进行连接,由内置的 Proxy 组件解析命令并按槽位路由至对应分片。Proxy 支持部分跨槽命令的聚合处理,且透明承载扩缩容、故障切换等拓扑变更,业务侧无需感知。

直连模式:客户端通过统一的实例访问地址进行首次连接,随后直接与底层各个分片节点建立连接。客户端需使用支持 Redis Cluster 协议的智能客户端(Smart Client,如 Jedis Cluster、Lettuce Cluster、go-redis Cluster)。
首次接入(First Time):客户端首先连接实例的统一访问地址(VIP:Port),通过 CLUSTER SLOTS 或 CLUSTER NODES 命令获取集群的完整拓扑结构,即各哈希槽区间与其所属分片独立访问地址(VIP 1、VIP 2…VIP N)的映射关系。
直连数据分片:客户端在本地完成槽位映射计算后,直接与各个分片的物理 VIP 建立连接并动态路由请求,绕过 Proxy 代理层以获取更低的网络时延。当集群发生扩缩容或故障切换导致拓扑变更时,客户端通过后端返回的 MOVED 或 ASK 重定向指令,自动触发本地拓扑结构的动态更新与分片 VIP 的重新连接。

说明:
连接模式在新购实例时选择,实例创建后不支持切换。如需变更连接模式,建议通过新建实例 + 数据迁移方式实现。
功能差异
维度 | 直连模式(推荐) | 代理模式 |
访问路径 | 客户端 SDK 本地计算 Slot 后直达目标分片,链路无中间转发节点 | 客户端 → 代理层 → 分片,请求统一经 Proxy 解析路由后再转发 |
路由责任 | 客户端 SDK 负责,本地缓存 Slot 拓扑并按 MOVED/ASK 自适应刷新 | Proxy 负责,拓扑变更(扩缩容、故障切换)对客户端透明 |
客户端类型 | 需使用集群模式 SDK(如 Jedis Cluster、Lettuce Cluster、go-redis Cluster) | 标准单机客户端即可(如 redis-cli、Jedis、Lettuce) |
协议版本 | 同时支持 RESP2 与 RESP3,可使用客户端缓存等 RESP3 特性 | 当前仅支持 RESP2,不支持 RESP3 及其相关特性 |
连接收敛 | 客户端与各分片直接建连,分片连接数随客户端数量同步增长 | Proxy 汇聚海量客户端连接,用少量连接访问后端分片,降低分片连接压力 |
跨分片多 Key 命令 | 涉及的 Key 必须借助哈希标签归入同一 Slot,否则返回 CROSSSLOT 错误 | Proxy 自动按 Slot 拆分到各分片执行并聚合结果,业务无需关注 Slot 分布 |
客户端改造成本 | 较高,原基于单机客户端的业务需改造为集群 SDK 并适配路由逻辑 | 极低,可直接沿用现有单机客户端,平滑接入、运维透明 |
命令兼容性 | 命令语义与开源 Redis 保持高度一致。 说明: 为保障云上实例安全与稳定,部分系统管理类命令(如 CONFIG SET、DEBUG 等)受到限制,采取拦截或模拟(Mock)处理,不支持通过命令直接变更核心配置。 | 受代理层架构限制,部分管理类及多 Key 跨槽(Slot)命令受限。 |
命令兼容性
两种模式在命令行为上的差异主要集中在跨分片命令、管理类命令和遍历类命令三类。
说明:
阻塞类、事务、订阅、监控类命令会在分片上建立独占连接,使用不当可能耗尽分片连接配额。无论选择哪种模式,都建议控制这类命令的并发量并及时释放连接。
命令类别 | 代理模式行为 | 直连模式行为 |
跨分片多 Key( MGET/MSET/DEL 等) | 自动拆分聚合,可直接使用 | 必须同 Slot,否则 CROSSSLOT 错误 |
SCAN / KEYS / DBSIZE | 由代理协调返回全集群结果 | 仅作用于单分片,全集群遍历需自行实现 |
事务 MULTI / EXEC / WATCH | 涉及的 Key 须在同一分片 | 涉及的 Key 须在同一 Slot |
MOVED / ASK 重定向 | 代理内部处理,客户端无感 | SDK 自动处理,需配置重定向次数(建议3 – 5) |
阻塞命令( BLPOP 等)/ 订阅 / 监控 | 在分片上建立独占连接,需控制并发 | 行为同原生,同样消耗分片连接 |
连接示例
集群架构的两种连接模式均支持业界主流的多语言 Redis 客户端。下表列出各开发语言推荐的客户端及其在两种模式下使用的连接类,单击对应语言可跳转至详细连接示例。连接前的准备工作、认证方式与连接验证等通用说明,请参见 连接准备。
开发语言 | 推荐客户端 | 推荐版本 | 代理模式连接类 | 直连模式连接类 | 连接示例 |
Java | Jedis | 5.1.2及以上 | JedisPool | JedisCluster | |
Java | Lettuce | 6.3.0及以上 | RedisClient | RedisClusterClient | |
Python | redis-py | 最新稳定版 | redis.Redis | RedisCluster | |
Go | go-redis | v9 | redis.NewClient | redis.NewClusterClient | |
Node.js | node-redis / ioredis | 最新稳定版 | createClient / new Redis() | createCluster / new Redis.Cluster() | |
PHP | phpredis | 5.0及以上 | Redis | RedisCluster | |
C | hiredis | 最新稳定版 | redisConnect | redisClusterContext | |
.Net | StackExchange.Redis / ServiceStack.Redis | 最新稳定版 | ConnectionMultiplexer | ConnectionMultiplexer(Cluster) |
分片与副本配置
分片数越多,容量和性能越高。所有分片均参与数据存储和请求处理。分片数 ≥ 1 时,数据自动按哈希槽分布,在水平方向扩展存储容量和吞吐性能。
副本数越多,可用性越高。所有副本节点均参与高可用切换。副本数 ≥ 1 时,可开启读写分离功能,在垂直方向扩展读性能。具体信息,请参见 读写分离。
说明:
配置项 | 可选规格 |
分片规格(GB) | 1、2、4、8、12、16、20、24、32、40、48、64 GB |
分片数量 | 1、3、5、8、12、16、24、32、40、48、64、80、96、128 |
副本数量 | 1、2、3、4、5 |
规格上限
规格项 | 上限 | 说明 |
总存储容量 | 8TB | 128分片 × 64GB/分片 |
并发性能 | 千万级 QPS |
在购买页配置

查看连接模式
