*Redis COMMAND-INFO 命令

COMMAND-INFO 返回一个或多个命令的元数据信息数组(名称、参数数量、标志位、ACL 分类等)。


*语法

COMMAND INFO [command-name [command-name ...]]

*参数说明

参数 类型 必填 说明
command-name String 命令名称;不提供则不返回任何数据

*返回值

返回一个数组,每个元素对应一个命令的元数据数组;命令不存在则对应位置为 nil。


*时间复杂度

O(N),N 为查询的命令数量。


*示例

*查询单个命令信息

> COMMAND INFO GET
1) 1) "get"
   2) (integer) 2
   3) 1) "readonly"
   ...

*查询多个命令

> COMMAND INFO SET GET NONEXIST
1) 1) "set"
   2) ...
2) 1) "get"
   2) ...
3) (nil)

*常见错误

错误 原因 解决
ERR wrong number of arguments 参数格式错误 语法为 COMMAND INFO [command-name ...]

*最佳实践

  • 客户端连接后可调用 COMMAND INFO 获取命令标志位,判断是否只读、是否允许在从节点执行等。
  • 可用于 Redis 代理实现命令白名单。

*FAQ

COMMAND INFOCOMMAND 有什么区别? COMMAND 返回所有命令信息;COMMAND INFO 可精准查询指定命令,减少数据传输。

返回值中的 flags 是什么意思? flags 描述命令属性,如 readonly、write、fast、slow、admin 等。

命令不存在时返回什么? 对应位置返回 nil,数组长度与输入命令数量一致。