You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载RedisJSON报Unable to load redis module及panic错误如何解决?

问题根因

本次崩溃的核心原因是RedisJSON依赖的redis-module Rust库调用了当前Redis实例不存在的接口,90%以上的此类报错都是Redis版本与RedisJSON版本不兼容导致,其余可能为编译环境异常、权限问题。

修复步骤

  • 第一步:校验版本兼容性
    执行redis-server -v查看当前Redis版本,你编译的RedisJSON版本要求Redis最低为6.2版本,若当前Redis版本低于6.2,优先升级Redis到6.2及以上正式版,版本匹配后重新尝试加载模块即可解决绝大多数问题。
    如果你不想升级Redis,可以拉取对应你Redis版本的RedisJSON旧版源码重新编译,不要直接拉取最新主干代码编译。
  • 第二步:校验编译环境
    如果你已经确认版本匹配,重新编译RedisJSON:
    执行rustc --version确认Rust版本≥1.59,版本不符的话用rustup切换到符合要求的Rust版本后,清空之前的编译产物,重新执行编译命令生成新的rejson.so文件。
  • 第三步:处理权限问题
    你用sudo启动Redis服务,root用户可能无权限读取普通用户家目录下的rejson.so文件:
    1. 执行sudo cp /home/username/RedisJSON/target/release/rejson.so /usr/lib/redis/modules/
    2. 执行sudo chmod 644 /usr/lib/redis/modules/rejson.so
    3. 执行sudo redis-server --loadmodule /usr/lib/redis/modules/rejson.so尝试加载
  • 第四步:修复前置警告(可选但建议操作)
    日志里的两个警告虽不是直接崩溃原因,但会影响Redis运行稳定性:
    1. 修复overcommit_memory配置:
      临时生效执行sudo sysctl vm.overcommit_memory=1,永久生效将vm.overcommit_memory = 1写入/etc/sysctl.conf文件
    2. 关闭透明大页:
      临时生效执行sudo echo never > /sys/kernel/mm/transparent_hugepage/enabled,永久生效将上述命令写入/etc/rc.local文件
      配置完成后重启Redis再加载模块即可。

内容的提问来源于stack exchange,提问作者Ercross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:27:03