帮你快速理解、总结文档立即下载

集群架构

最近更新时间:2026-10-12 15:44:13
我的收藏

连接模式

集群架构提供代理模式与直连模式两种客户端访问方式,核心差异在于请求路由的承担者不同,满足不同的业务场景需求。
说明:
直连模式当前处于灰度测试阶段,仅 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
腾讯云在标准测试环境下多次压测,取稳定值作为官方参考。具体信息,请参见 规格与性能。

在购买页配置

登录 腾讯云分布式缓存数据库购买页,在实例配置区域,配置集群架构的连接模式。


查看连接模式

登录 腾讯云分布式缓存数据库控制台,在实例列表中,找到目标实例,单击实例 ID,进入实例详情页面,在网络信息区域,可查看实例的连接模式。