腾讯云分布式缓存数据库 核心数据类型

腾讯云分布式缓存数据库(兼容 Redis)完全兼容 Redis 协议,支持绝大部分社区版原生命令。这篇从全局视角汇总各命令族的支持情况、集群架构下的使用差异,以及 Valkey 版专属模块命令,帮助你快速定位所需命令的兼容性信息。

相关产品
腾讯云分布式缓存数据库(兼容 Redis) 产品页,含版本规格、价格与购买入口。

一、命令族索引

下表列出了产品支持的所有命令族,你可根据需要跳转到对应的详细文档查看具体命令的版本支持情况。

命令族 用途说明 版本要求 详细文档
Strings 字符串的存取与位操作 全版本 Strings 族命令支持情况
Hash 键值对集合操作 全版本 Hash 族命令支持情况
List 双向链表操作 全版本 List 族命令支持情况
Sets 无序集合操作 全版本 Sets 族命令支持情况
Sorted Sets 有序集合操作 全版本 Sorted Sets 族命令支持情况
Keys 键的通用管理操作 全版本 Keys 族命令支持情况
Bitmap 位数组操作 全版本 Bitmap 族命令支持情况
HyperLogLog 基数统计 全版本 HyperLogLog 族命令支持情况
Geo 地理位置操作 Redis 4.0+ Geo 族命令支持情况
Stream 消息流操作 Redis 5.0+ Stream 族命令支持情况
Pub/Sub 发布/订阅消息 全版本 Pub/Sub 族命令支持情况
Scripting Lua 脚本执行 全版本 Scripting 族命令支持情况
Transactions 事务操作 全版本 Transactions 族命令支持情况
Server 服务端管理命令 全版本 Server 族命令支持情况
Connection 连接管理命令 全版本 Connection 族命令支持情况
Cluster 集群管理命令 Redis 4.0+(集群架构) Cluster 族命令支持情况

二、集群架构命令使用说明

集群架构通过 Proxy 代理层对外提供与标准架构一致的使用体验,但由于底层数据按 Slot 分散在多个分片节点上,部分命令的行为与标准架构存在差异。

三、跨 Slot 命令

集群架构下,数据按照 Key 的 CRC16 值分布到16384个 Slot 中。涉及多个 Key 的命令按跨 Slot 支持情况分为两类:

类型 说明 典型命令
支持跨 Slot Proxy 层自动拆分请求并汇总结果,业务无感知 MGET、MSET、DEL
不支持跨 Slot 操作的多个 Key 必须位于同一 Slot,否则返回错误。可使用 Hash Tag 规避 RENAME、MSETNX、SDIFF、SUNION、SINTER、ZINTERSTORE 等

注意:说明:

注意:对于不支持跨 Slot 的命令,可使用 Hash Tag(将 Key 中的 {tag} 部分相同的 Key 路由到同一 Slot)来规避限制。例如 {user}.name 和 {user}.age 将落入同一 Slot。

四、自定义命令

集群架构中,INFO、SLOWLOG、SCAN、KEYS、PING、FLUSHDB 等命令默认在 Proxy 层执行或随机路由到某个分片。若需要指定某个分片节点执行,可在命令末尾追加节点 ID 参数:

COMMAND arg1 arg2 … [节点ID]

节点 ID 可在 控制台 的节点管理页面查看,或通过 CLUSTER NODES 命令获取。

注意:说明:

注意:Proxy 代理版本5.5.0及之后,自定义命令已不需要增加节点 ID 参数,Proxy 会自动路由。具体用法请参见 自定义命令使用示例。

五、有限支持命令

集群架构通过 Proxy 代理层对外提供服务,隐藏了后端分片的真实网络拓扑。为兼容 Jedis Cluster、Lettuce Cluster 等智能客户端,以下 Cluster 命令可正常执行,但返回的节点 IP 地址统一替换为实例的 Proxy VIP 地址(即实例的内网 IPv4 接入地址)。具体信息,请参见 Redis/Valkey 版有限支持命令使用示例。

命令 差异说明
CLUSTER NODES 返回的节点 IP 地址为实例 Proxy VIP,而非后端分片真实 IP
CLUSTER SLOTS 返回的节点 IP 地址为实例 Proxy VIP,而非后端分片真实 IP
CLUSTER SHARDS (7.0+/Valkey 8.0+)返回的节点 IP 地址为实例 Proxy VIP,而非后端分片真实 IP

六、事务支持

集群架构支持事务(MULTI/EXEC),但需满足以下条件:

·事务中涉及的所有 Key 必须位于同一 Slot,建议使用 Hash Tag(如 {user}.name 和 {user}.age)将相关 Key 路由到同一 Slot。

·若使用 WATCH 命令实现乐观锁,被监控的 Key 与事务中操作的 Key 同样需要在同一 Slot。

七、多 DB 支持

集群架构支持多 DB(通过 SELECT 命令切换),共提供256个 DB(DB 0 ~ DB 255)。

八、不支持的命令

出于安全性、架构兼容性或功能限制的原因,以下命令在产品中不支持执行,调用时将返回错误:

·系统管理类:BGREWRITEAOF、BGSAVE、CONFIG、DEBUG、CLUSTER 写操作(ADDSLOTS / FAILOVER / RESET 等)

·危险操作类:FLUSHALL(标准架构可用)、SHUTDOWN、SLAVEOF / REPLICAOF

·协议层:HELLO(RESP3 协议)

·权限控制:ACL 系列命令

·模块管理:MODULE LOAD / UNLOAD

完整的不支持命令列表,请参见 社区版命令兼容性 中各命令族的详细文档。

九、版本差异与注意事项

不同引擎版本之间存在命令行为差异,主要涉及 Lua 脚本沙箱限制、命令返回值变更等方面。在进行版本升级前,建议详细了解目标版本的变更内容,避免对业务造成影响。具体信息请参见 大版本命令使用差异。

十、相关文档

文档 说明
社区版命令兼容性 各命令族在不同版本和架构下的逐条支持情况
大版本命令使用差异 Redis 5.0 → 6.2 → 7.0 / Valkey 8.0+ 版本间的命令行为变更
有限支持命令使用示例 CLUSTER NODES / CLUSTER SLOTS 等有限支持命令的使用方法
自定义命令使用示例 INFO、SLOWLOG、SCAN 等命令在集群架构下的自定义用法
DMC 支持命令列表 DMC 数据库管理工具中可执行的命令
Proxy 架构与直连模式使用差异 Proxy 模式与直连模式在命令支持上的差异
赞 (0)
上一篇 4天前
下一篇 4天前