当前位置: 代码网 > it编程>数据库>Redis > Redis避免以后AOF再次损坏的预防措施

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

2026年04月29日 Redis 我要评论
一、先把当前 aof 损坏彻底修好(极简操作)停止 redissystemctl stop redis备份 + 修复cd /var/lib/redis/appendonlydircp appendon

一、先把当前 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再次损坏内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com