linux异常(七):redis-server:The RDB file contains module data I can‘t load: no matching module MBbloom

问题描述

在你启动redis-server的时候,会提示下面的错误。

The RDB file contains module data I can't load: no matching module 'MBbloom--'
大概意思:dump.rdb持久化数据,不能加载一个不匹配的布隆过滤器。

这个时候,你就要思考,启动redis-server服务的时候,本次读取的dump.rdb是哪个目录下的,是当前目录下的,还是你在6379.conf目录里dir配置的目录。然后找到这个对应的rdb文件。问题就出在它这里。

解决思路

某篇几十万浏览的文章,就俩字“重启”,然后给一个不知所云的链接,显然并没有从根本上解决问题。

解决步骤

问题根源

1.首先要了解,启动redis-server服务时,它的持久化dump.rdb文件存储位置是怎么回事?

答:rdb的存储位置,是在redis源码解压目录的根目录下redis.conf里由“dir ./” 参数来控制的,也就是说,你在哪个目录启动redis-server服务(前提是没有指定conf,使用默认的redis.conf),dump.rdb就会自动生成在哪个目录。

2.那么问题来了,自己在使用redis的时候,通常会复制一份redis.conf,在里面各种修改,还经常重名为6379.conf,诸如此类。

3.所以,在我们反复做Redis集群搭建Redis分片代理predixytwemproxy代理、以及各种布隆过滤器、布谷鸟过滤器,各种测试时有时候使用默认redis.conf启动redis-server,有时候使用自己配置的6379.conf,启动redis-server,需要使用代理就修改这里,需要使用集群就修改那里。

dump.rdb文件被各种redis-server启动方式反复读取戏弄,不甘受辱,终于如愿以偿的看到了上述错误,RDB和MBbloom不匹配,sorry 我罢工了你看着办!!。

解决办法

1.重启不是万能的,如果问题没有从根源解决,下次还会出现。

2.猜测是dump.rdb出了问题,就找到各个dump.rdb (包含你自己配置的dump.rdb存储路径,比如你习惯上把它放到/var目录的某个位置)。

3.测试数据

如果里面都是你的测试数据,找到这些dump.rdb都予以删除。

4.正式数据

使用 ./redis-check-aof --fix appendonly.aof 这样的一些修复命令,尝试修复一下。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值