*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 指令持久化。