Redis 启动时出现 “Bad file format reading the append only file“ 错误

当 Redis 启动时出现 “Bad file format reading the append only file” 错误,通常意味着 AOF(Append-Only File)文件存在格式损坏或数据错误。这可能是由于意外关机、磁盘故障或文件写入中断导致的。

解决步骤:

  1. 使用 redis-check-aof 工具检查并修复
    这是最直接的解决方法,使用 Redis 自带的 AOF 检查修复工具:

    # 先备份原始 AOF 文件(重要!)
    cp appendonly.aof appendonly.aof.bak
    
    # 检查并修复 AOF 文件
    redis-check-aof --fix appendonly.aof
    

    修复过程会移除文件中损坏的部分,工具会显示修复详情(如移除了多少字节的无效数据)。

  2. 重启 Redis 服务
    修复完成后,尝试重新启动 Redis:

    redis-server /path/to/redis.conf
    
  3. 如果修复失败,考虑重建 AOF 文件
    若上述方法无效,可通过 RDB 文件重建 AOF(前提是开启了 RDB 持久化):

    # 1. 停止 Redis 服务
    redis-cli shutdown
    
    # 2. 备份并删除损坏的 AOF 文件
    mv appendonly.aof appendonly.aof.corrupted
    
    # 3. 启动 Redis 时加载 RDB 并重建 AOF
    redis-server /path/to/redis.conf
    

    Redis 会先加载 RDB 数据到内存,再重新生成全新的 AOF 文件。

预防措施:

  • 确保 Redis 有充足的磁盘空间
  • 避免强制 kill Redis 进程(建议使用 redis-cli shutdown 正常关闭)
  • 定期备份 AOF 和 RDB 文件
  • 考虑启用 AOF 重写(auto-aof-rewrite-* 相关配置)

如果问题反复出现,可能需要检查磁盘健康状态或调整 Redis 持久化策略。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值