*Redis MODULE LIST 命令
MODULE LIST 返回当前 Redis 实例中已加载的所有模块列表及其信息。
*语法
MODULE LIST
*参数说明
无参数。
*返回值
- Array:每个模块为一个嵌套数组,包含 name / ver / path / args 字段
- 空数组表示未加载任何模块
*时间复杂度
O(N),N 为已加载模块数量
*示例
*无模块加载
> MODULE LIST
(empty array)
*已加载模块
> MODULE LIST
1) 1) "name"
2) "ReJSON"
3) "ver"
4) (integer) 20000
5) "path"
6) "/usr/lib/redis/modules/rejson.so"
7) "args"
8) (empty array)
2) 1) "name"
2) "search"
3) "ver"
4) (integer) 2100
5) "path"
6) "/usr/lib/redis/modules/redisearch.so"
7) "args"
8) 1) "MAXSEARCHRESULTS"
9) "10000"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 传入了额外参数 | 不需要任何参数 |
*最佳实践
- 安全审计时检查已加载模块,防止未授权模块运行
- 升级或迁移时记录模块列表,确保目标环境一致
- 配合 MODULE UNLOAD 移除不再需要的模块
- 模块版本号通常是整数形式(如 20000 表示 2.0.0)
*FAQ
Q1: 模块列表包含哪些信息? A: name(模块名)、ver(版本号)、path(加载路径)、args(启动参数)。
Q2: 如何知道模块提供了哪些命令? A: 加载后使用 COMMAND LIST 过滤,或查看模块文档。
Q3: 模块版本号如何解读? A: 通常是编码后的整数,如 20000 可能表示 2.0.0,具体取决于模块作者的定义。
Q4: 重启后模块会保留吗? A: 不会自动保留,需在配置文件中用 loadmodule 指令持久化。