*Redis COMMAND-LIST 命令

COMMAND-LIST 返回满足过滤条件的命令名称列表。


*语法

COMMAND LIST [FILTERBY <MODULE module-name | ACLCAT category-name | PATTERN pattern>]

*参数说明

参数 类型 必填 说明
FILTERBY Keyword 启用过滤
MODULE module-name String 仅返回指定模块注册的命令
ACLCAT category-name String 仅返回指定 ACL 分类下的命令
PATTERN pattern String 仅返回名称匹配 glob 模式的命令

*返回值

返回一个字符串数组,包含符合条件的命令名称。


*时间复杂度

O(N),N 为命令总数;带过滤时视过滤条件而定,最坏 O(N)。


*示例

*列出所有命令

> COMMAND LIST
1) "append"
2) "bitcount"
...

*按 ACL 分类过滤

> COMMAND LIST FILTERBY ACLCAT string
1) "append"
2) "get"
...

*按模式过滤

> COMMAND LIST FILTERBY PATTERN GET*
1) "get"
2) "getbit"
3) "getdel"
...

*常见错误

错误 原因 解决
ERR wrong number of arguments 过滤条件不完整 FILTERBY 后必须跟 MODULE、ACLCAT 或 PATTERN
ERR Invalid filter 过滤类型不支持 仅支持 MODULE、ACLCAT、PATTERN

*最佳实践

  • 用于 ACL 配置时快速查看某分类下有哪些命令。
  • 客户端初始化时可用 PATTERN 过滤加载特定命令子集。
  • MODULE 过滤适用于动态加载模块后的命令发现。

*FAQ

PATTERN 支持哪些通配符? 支持 glob 风格:* 匹配任意字符,? 匹配单个字符。

FILTERBY 可以组合多个条件吗? 不可以一次组合多个 FILTERBY,需多次查询后在客户端合并结果。

返回的顺序有含义吗? 按命令名字母顺序排序。