一、命令族索引
下表列出了产品支持的所有命令族,你可根据需要跳转到对应的详细文档查看具体命令的版本支持情况。
| 命令族 | 用途说明 | 版本要求 | 详细文档 |
| 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 模式与直连模式在命令支持上的差异 |