*Redis MODULE LOADEX 命令

MODULE LOADEX 加载一个 Redis 模块动态库文件,支持通过 CONFIG 参数传递配置,是 MODULE LOAD 的增强版。


*语法

MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS arg [arg ...]]

*参数说明

参数 类型 必填 说明
path String 模块动态库文件路径(.so / .dll)
CONFIG name value String String 模块配置参数,可重复多次
ARGS arg String 模块启动参数,可重复多次

*返回值

  • OK:加载成功
  • Error:加载失败(路径错误、不兼容、权限不足等)

*时间复杂度

O(1)

*

*示例

*基本加载

> MODULE LOADEX /usr/lib/redis/modules/redisearch.so
OK

*带配置参数加载

> MODULE LOADEX /usr/lib/redis/modules/redisearch.so CONFIG MAXSEARCHRESULTS 10000 CONFIG MINPREFIX 1
OK

*带启动参数加载

> MODULE LOADEX /usr/lib/redis/modules/my_module.so ARGS --enable-feature --verbose
OK

*常见错误

错误 原因 解决
ERR Error loading the extension 路径错误、文件损坏或版本不兼容 检查路径、权限和 Redis 版本兼容性
ERR wrong number of arguments 缺少 path 或 CONFIG/ARGS 格式错误 确保 path 为第一个参数
ERR module already loaded 同名模块已加载 先 UNLOAD 或检查是否重复加载

*最佳实践

  • 优先使用 LOADEX 替代旧版 LOAD,支持结构化配置参数
  • 生产环境加载前在测试环境验证
  • 配置参数使用 CONFIG 传递,启动参数使用 ARGS 传递
  • 加载成功后用 MODULE LIST 确认
  • 将 loadmodule 配置写入 redis.conf 实现持久化

*FAQ

Q1: MODULE LOADEX 和 MODULE LOAD 有什么区别? A: LOADEX 支持 CONFIG 和 ARGS 参数传递,LOAD 只能传简单参数。Redis 7.0+ 推荐使用 LOADEX。

Q2: CONFIG 和 ARGS 有什么区别? A: CONFIG 是键值对配置,由 Redis 统一管理;ARGS 是原始字符串参数,直接传递给模块。

Q3: 加载失败会影响现有数据吗? A: 通常不会,加载失败会返回错误,Redis 继续运行。但 buggy 模块可能导致崩溃。

Q4: 模块加载后能修改配置吗? A: 取决于模块实现,部分模块支持运行时重配置,通常需通过模块专用命令。