*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 |
*最佳实践
*FAQ
PATTERN 支持哪些通配符? 支持 glob 风格:* 匹配任意字符,? 匹配单个字符。
FILTERBY 可以组合多个条件吗? 不可以一次组合多个 FILTERBY,需多次查询后在客户端合并结果。
返回的顺序有含义吗? 按命令名字母顺序排序。