首页/数据/Redis 进阶速查/COMMAND 系列:命令元信息查询
性能与排障129 条

COMMAND 系列:命令元信息查询

COMMAND INFO 查询命令的元信息(参数、flags、复杂度),COMMAND DOCS 返回文档说明,客户端与排障脚本可据此裁剪命令集与复杂度。

Redis 进阶速查数据更新于 2026-10-13

COMMAND 系列做什么

COMMAND INFO 返回命令的元信息:参数结构、flags、首键位置与步长;COMMAND DOCS 返回命令的文档说明。客户端与排查脚本可以据此动态裁剪命令集、判断命令风险级别,比维护一份静态命令清单更不容易和实际版本脱节。

基本信息

INFO返回元信息:参数结构、flags、首键、步长
DOCS返回命令文档说明,Redis 7.0+
COUNT/LIST命令总数与命令名列表
GETKEYS解析命令实际涉及的键
用途白名单、风险分级、复杂度报表

典型使用场景

  • 自研代理或中间件按元信息判断命令能否放行
  • 安全检查:识别写命令、内存风险命令
  • 客户端侧生成参数校验规则
  • 版本升级后核对命令是否存在、语义是否变化
  • 构建命令复杂度报表,辅助慢命令治理

常用调用

常用调用
redis-cli COMMAND INFO get,set          # 查看指定命令的元信息
redis-cli COMMAND INFO get | head -20   # 单条命令,便于逐字段阅读
redis-cli COMMAND DOCS get              # 命令文档说明,需 Redis 7.0+
redis-cli COMMAND COUNT                 # 当前实例支持的命令总数
redis-cli COMMAND LIST | head -20       # 命令名列表,可做白名单底稿
redis-cli COMMAND GETKEYS MSET k1 v1 k2 v2   # 解析命令涉及的所有键

flags 取值读法

flag含义关注点
write写命令在只读副本上会被拒绝,白名单要区分读写
readonly只读且可安全读副本读扩展路由的依据
denyoom内存不足时直接拒绝涉及内存分配,与水位告警关联看
admin管理类命令风险高,需严格管控
blocking可能阻塞连接如 BLPOP,管道中要避免
fast常数或对数级复杂度对比 O(N) 类命令识别慢命令
movablekeys键位置需动态解析如 SORT、GEORADIUS,按固定位置取键会错
flags 里的 denyoom 表示该命令在内存不足时会被直接拒绝,容量评估时要把它与内存水位告警关联起来看,而不是只盯 used_memory。
硬编码命令清单会在版本升级后与实际脱节;改用 COMMAND 元信息动态判断,能自动跟随实例变化,代价只是每次调用一点开销。
COMMAND 系列的返回体量不算小,适合在服务启动或配置变更时拉取缓存,不适合放进每次请求的判定路径高频调用。

易错点

  • 硬编码命令清单:升级后新增或变更的语义无人同步,判断长期失效
  • 忽略 write 与 denyoom:把写命令放到只读副本上,或低估内存风险
  • 忽略 movablekeys:按固定位置解析键会出错,多键命令尤其明显
  • 在每次请求里调用 COMMAND:元信息开销叠加在业务链路上,得不偿失

数据来源与参考

  • Redis 官方文档:COMMAND 命令族
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌