首页/数据/数据库速查/COMMAND 系列:命令元数据查询
Redis 命令96 条

COMMAND 系列:命令元数据查询

程序化查询命令元数据:COMMAND COUNT 数量、COMMAND INFO 参数与 flags、COMMAND DOCS 文档、COMMAND GETKEYS 解析键位置;写客户端、代理或审计工具时常用。

数据库速查数据更新于 2026-10-13

COMMAND 系列查命令元数据

COMMAND 系列让程序化地读到 Redis 自身的命令元数据:命令总数、每条命令的参数形式与能力标志、官方文档字段,以及把一条具体命令解析成它要操作的键。写客户端、代理中间件、审计白名单或自动补全工具时都会用到,它把「哪些命令能做什么」从硬编码变成可查询。

基本信息

适用平台Redis 2.8.13 起提供 COMMAND 族,7.0 起新增 DOCS 与 LIST
COMMAND COUNT返回命令总数,用于兼容性探测
COMMAND INFO返回参数个数、能力标志、首末键位置等信息
COMMAND DOCS7.0 起返回 summary、since、complexity 等字段
COMMAND GETKEYS把完整命令解析成它操作的键列表
COMMAND GETKEYSANDFLAGS7.0 起在键之外返回读写标志
返回结构按版本演进,7.0 的 INFO 增加 ACL 类别、提示与键规范

典型使用场景

  • 客户端库启动时拉取命令元数据,做参数校验与自动补全
  • 集群客户端计算键所属槽位,判断请求该发到哪个节点
  • 代理中间件判定某条命令可路由到单分片还是必须广播
  • 安全审计按能力标志筛出写命令或管理命令,生成白名单
  • 内部平台生成命令速查文档与编辑器提示

常用查询

常用查询
# 命令总数与指定命令的元数据
COMMAND COUNT
COMMAND INFO GET SET MSET

# 7.0 起:命令文档条目(summary/since/complexity/arguments)
COMMAND DOCS GET
COMMAND LIST FILTERBY ACLCAT read      # 按 ACL 类别过滤
COMMAND LIST FILTERBY PATTERN 'json.*' # 按名称模式过滤

# 解析键位置:客户端据此计算槽位
COMMAND GETKEYS MSET k1 v1 k2 v2
COMMAND GETKEYS EVAL "return redis.call('GET', KEYS[1])" 1 mykey
COMMAND GETKEYSANDFLAGS GET mykey      # 7.0 起:键与读写标志

# 过滤写命令
COMMAND LIST FILTERBY ACLCAT write

各子命令返回什么

命令返回内容典型用途
COMMAND COUNT命令总数版本兼容探测
COMMAND INFO参数个数、标志、键位置参数校验与路由
COMMAND DOCS文档字段与参数说明生成文档与提示
COMMAND LIST按类别或模式筛选的命令名白名单生成
COMMAND GETKEYS命令涉及的键列表计算槽位
COMMAND GETKEYSANDFLAGS键与读写访问标志只读路由与审计
COMMAND 的输出结构随版本演进:7.0 的 INFO 增加了 ACL 类别、提示与键规范字段,GETKEYSANDFLAGS 才带读写标志。解析代码要按字段名取值而不是按下标取值,升级 Redis 之后回归一遍工具行为。

易错点

  • 把 COMMAND 输出按数组下标写死解析:版本升级字段增减会让工具崩或误判
  • 用参数个数直接做校验:可变参数命令该字段为负数,需要按其语义换算最小参数个数
  • 给 COMMAND GETKEYS 传不完整命令:直接返回错误,客户端要原样透传命令与参数
  • 代理只按命令名判定路由:键位置不固定的命令要靠解析结果定分片,否则会返回错误结果
  • 升级 Redis 后不回归工具:命令元数据的字段与标志可能变化,解析逻辑悄悄失准

数据来源与参考

  • Redis 官方文档: COMMAND
  • Redis 官方文档: COMMAND DOCS

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌