Redis避免以后AOF再次损坏的预防措施

 更新时间:2026年04月29日 09:00:54   作者:BullSmall  
文章提供了修复和防止Redis AOF文件损坏的方法,包括临时修复、关键配置设置、双保险策略、运维规范和一键自救命令,重点介绍了安全AOF刷盘、AOF自动碎片重写、损坏容错配置、关闭混合AOF等配置,并强调了避免磁盘满、定期巡检等运维规范,需要的朋友可以参考下

一、先把当前 AOF 损坏彻底修好(极简操作)

  1. 停止 redis
systemctl stop redis
  1. 备份 + 修复
cd /var/lib/redis/appendonlydir
cp appendonly.aof.1.incr.aof appendonly.aof.1.incr.aof.bak
redis-check-aof --fix appendonly.aof.1.incr.aof
  1. 临时放行损坏尾段(适配你报错提示)编辑 redis.conf
aof-load-corrupt-tail-max-size 830
  1. 启动
systemctl start redis

二、永久杜绝 AOF 损坏(关键配置,直接抄)

打开 redis.conf

1. 安全 AOF 刷盘(防止断电崩文件)

# 核心:不要用always(太耗性能),也别用no(极易坏文件)
appendfsync everysec

# 断电/强制关机时,减少AOF损坏概率
no-appendfsync-on-rewrite no

2. 开启 AOF 自动碎片重写

避免 AOF 文件无限膨胀、内部格式异常

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

3. 损坏容错配置(防止启动直接挂掉)

# 轻微损坏允许启动,截断错误尾段
aof-load-corrupt-tail-max-size 1024
aof-trim-corrupt-tail yes

4. 关闭混合 AOF(Redis7+ 最容易坏文件的元凶)

重点推荐,混合持久化最容易出现 aof 格式报错

aof-use-rdb-preamble no

三、搭配 RDB,双保险(数据不丢、不怕 AOF 坏)

同时开 RDB+AOF,AOF 坏了可以用 RDB 恢复

# 定时快照
save 60 1000
dbfilename dump.rdb
dir /var/lib/redis

四、运维硬性规范(避免再次炸裂)

  1. 禁止暴力杀进程不要 kill -9 redis,统一用:
systemctl stop redis
# 或
redis-cli shutdown
  1. 服务器关机前先停 Redis断电、重启前优雅下线,防止 AOF 写入中断。
  2. 磁盘不要满盘运行磁盘 100% 占用,AOF 写入截断直接损坏文件,定期监控磁盘。
  3. 定期巡检
# 检查aof是否异常
redis-check-aof /var/lib/redis/appendonlydir/*.aof

五、后续再崩一键自救命令

# 批量修复所有aof
redis-check-aof --fix /var/lib/redis/appendonlydir/*aof
# 查看redis运行+持久化状态
redis-cli info persistence

六、直接复制粘贴到redis.conf,全覆盖,防 AOF 损坏 + 兼顾性能 + 双持久化兜底

# ========== 持久化核心配置(直接生效) ==========
# 开启AOF
appendonly yes

# AOF文件独立目录,方便维护
appendonlydir /var/lib/redis/appendonlydir

# 刷盘策略:折中最稳,不易坏文件
appendfsync everysec

# 后台重写时不阻塞刷盘
no-appendfsync-on-rewrite no

# 关闭混合AOF(Redis7+ 损坏高发根源,必关)
aof-use-rdb-preamble no

# AOF自动重写,防止文件过大、碎片错乱
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 容忍轻微AOF尾部损坏,启动不挂
aof-load-corrupt-tail-max-size 1024
aof-trim-corrupt-tail yes

# ========== RDB 快照兜底(双保险) ==========
save 60 10
save 300 100
save 3600 1000

# RDB文件目录&名称
dir /var/lib/redis
dbfilename dump.rdb

# 快照出错也允许启动
stop-writes-on-bgsave-error no

# 压缩&校验,保证文件完整性
rdbcompression yes
rdbchecksum yes

安全 AOF 刷盘(防止断电崩文件),依次执行如下命令

止 Redis---》 编辑配置文件,粘贴上面全部内容---》 重建 AOF 目录权限(避免写入权限异常损坏文件)---》重启 Redis

systemctl stop redis
vi /etc/redis/redis.conf
mkdir -p /var/lib/redis/appendonlydir
chown -R redis:redis /var/lib/redis
chmod 700 /var/lib/redis/appendonlydir
systemctl start redis
systemctl status redis

七、关键说明

  1. aof-use-rdb-preamble no关闭「RDB+AOF 混合格式」,彻底杜绝你刚才那种 aof.incr 格式报错
  2. appendfsync everysecalways 性能强,比 no 安全,生产最优选择。
  3. RDB+AOF 双开AOF 万一损坏,直接用 dump.rdb 恢复数据,不怕丢数据。

到此这篇关于Redis避免以后AOF再次损坏的预防措施的文章就介绍到这了,更多相关Redis避免AOF再次损坏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis数据库存储键值对的底层原理分析

    Redis数据库存储键值对的底层原理分析

    Redis是一种内存数据库,使用哈希表存储键值对,它通过哈希函数计算键的存储地址,并通过地址找到数据,当出现哈希冲突时,Redis使用链地址法解决,为优化性能,Redis采用渐进式哈希表迁移技术,逐步将数据从旧哈希表迁移到新哈希表,减少对业务的影响
    2026-03-03
  • redis 限制内存使用大小的实现

    redis 限制内存使用大小的实现

    这篇文章主要介绍了redis 限制内存使用大小的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • redis 集群批量操作实现

    redis 集群批量操作实现

    这篇文章主要介绍了redis 集群批量操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • redis 交集、并集、差集的具体使用

    redis 交集、并集、差集的具体使用

    这篇文章主要介绍了redis 交集、并集、差集的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 一文详解redis高可用Sentinel 

    一文详解redis高可用Sentinel 

    本文主要介绍了redis高可用Sentinel的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Redis集群指定主从关系及动态增删节点方式

    Redis集群指定主从关系及动态增删节点方式

    这篇文章主要介绍了Redis集群指定主从关系及动态增删节点方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Redis7.0部署集群的实现步骤

    Redis7.0部署集群的实现步骤

    本文主要介绍了Redis7.0部署集群的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 详解Redis缓存预热的实现方法

    详解Redis缓存预热的实现方法

    缓存预热是一种在程序启动或缓存失效之后,主动将热点数据加载到缓存中的策略,本文将给大家分享一下如何实现Redis的缓存预热,文中有详细的实现代码,需要的朋友可以参考下
    2023-10-10
  • Rocky9部署redis的实现示例

    Rocky9部署redis的实现示例

    本文主要介绍了Rocky9部署redis的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Redis 5.05 单独模式安装及配置方法

    Redis 5.05 单独模式安装及配置方法

    这篇文章主要介绍了Redis 5.05 单独模式安装,文中通过代码给大家介绍了Redis 5.0.5 单节点 安装配置方法,需要的朋友可以参考下
    2019-10-10

最新评论