本文介绍腾讯云分布式缓存数据库支持的多语言客户端连接方式,帮助您根据业务的开发语言和部署架构,快速选择合适的客户端与连接模式,并跳转至对应语言的连接示例。
概述
腾讯云分布式缓存数据库完全兼容 Redis 协议,支持业界主流的 Redis 客户端。无论您使用何种开发语言,均可通过对应的客户端连接实例,进行数据读写。
针对集群架构实例,分布式缓存数据库提供 代理模式 和 直连模式 两种连接方式:
代理模式:客户端通过 Proxy 代理层提供的统一 VIP 地址连接实例,使用方式与连接单机 Redis 一致,由 Proxy 屏蔽后端分片细节。
直连模式:客户端使用 Redis Cluster 客户端,直接连接后端各分片节点,由客户端本地处理槽位路由与重定向。
获取连接信息
1. 登录 分布式缓存数据库控制台。
2. 在实例列表中,单击目标实例 ID,进入实例详情页。
3. 在网络信息区域,获取实例的连接地址和端口号。
代理模式:获取 VIP 地址和端口(默认6379)。
直连模式:获取各分片节点地址和端口(默认6379)。
4. 在配置信息区域,获取实例的连接密码。
认证方式说明
代理模式与直连模式的认证方式不同,请根据实例的连接模式与账号配置选择对应的密码格式。
代理模式:客户端通过 Proxy 代理层连接,账号信息拼接在密码字段中传入。
账号类型 | 密码格式 | 说明 |
免密认证 | 无需密码 | 仅适用于私有网络(VPC)内访问,安全性较低 |
默认账号 | 实例 ID:密码 | 例如 crs-xxxx:password |
自定义账号 | 用户名@密码 | 例如 readonly_user@password |
直连模式:客户端使用 Redis Cluster 客户端直接连接分片节点,复用 Redis 原生 ACL 认证机制,不支持
用户名@密码 拼接格式。账号类型 | 认证方式 | 说明 |
默认账号 | AUTH password | 仅传入密码,不带实例 ID 前缀 |
自定义账号 | AUTH account password | 分别传入账号名与密码,密码为纯密码 |
网络与安全
确保客户端与实例处于同一私有网络(VPC),或已正确配置网络互通(如对等连接、云联网等)。
确保实例所在安全组已放通客户端访问的端口(默认6379)。
如需通过公网访问,请在控制台开启外网地址,并配置外网安全组规则。
对数据传输安全有要求的场景,可开启 SSL 加密连接(当前仅代理模式支持,直连模式暂不支持),各语言的 SSL 连接示例详见对应语言文档。
连接验证
完成连接配置后,可通过执行以下基础命令验证连接是否成功:
执行
PING 命令,返回 PONG 表示连接正常。执行
SET 与 GET 命令,验证数据可正常读写。连接失败常见原因包括:网络不通、安全组未放通、密码格式错误、客户端版本不兼容等。
连接模式迁移改造要点
两种连接模式在新购实例时选定,实例创建后不支持在线切换。变更连接模式需通过新建目标模式实例 + 数据迁移实现,迁移过程中客户端代码需重点改造,具体如下。
代理模式 → 直连模式
改造项 | 改造说明 |
客户端类型 | 普通 Redis 客户端更换为 Cluster 客户端(如 JedisPool → JedisCluster)。 |
连接地址 | 单个 VIP 地址更换为各分片节点地址,作为种子节点传入客户端。 |
多 Key 操作 | MSET/MGET、事务、Lua 脚本跨槽位执行会返回 CROSSSLOT 错误,需使用 Hash Tag {} 将关联 Key 固定到同一槽位。 |
多 DB 使用 | 直连模式仅支持 DB0,使用了 SELECT 切换多库的逻辑需改造。 |
重定向处理 | 确保客户端开启 MOVED/ASK 重定向跟随与拓扑自动刷新(Cluster 客户端默认支持)。 |
直连模式 → 代理模式
常见诉求为简化客户端、统一接入方式,改造要点如下:
改造项 | 改造说明 |
客户端类型 | Cluster 客户端更换为普通 Redis 客户端,连接地址改为单个 VIP 地址。 |
Hash Tag 约束 | 多 Key 操作的同槽位约束放宽,原有 {} 写法可保留,不影响兼容性。 |
路由处理 | 跨分片路由由 Proxy 层统一处理,客户端无需关注槽位映射与重定向。 |