Linux Redis备份策略是什么
导读:Linux Redis备份策略 一 策略总览 在生产环境中,建议采用以RDB快照做定时冷备为主、AOF保障近实时落盘为辅、异地容灾兜底的“多层”策略;若使用 Redis 4.0+,可开启混合持久化 aof-use-rdb-preamble...
Linux Redis备份策略
一 策略总览
- 在生产环境中,建议采用以RDB快照做定时冷备为主、AOF保障近实时落盘为辅、异地容灾兜底的“多层”策略;若使用 Redis 4.0+,可开启混合持久化 aof-use-rdb-preamble以兼顾恢复速度与数据安全性。RDB 适合做周期性全量备份与快速恢复,AOF 记录写操作,故障时可重放,二者可同时开启,Redis 重启时默认以 AOF 为主进行恢复。对于关键业务,建议同时保留本地与远程/云端备份副本,并定期校验与演练恢复流程。
二 持久化选型与配置要点
- RDB(快照)
- 触发方式:手动执行 SAVE(阻塞)/BGSAVE(后台);或在配置中设置自动快照策略(如 save 900 1、save 300 10、save 60 10000)。RDB 文件默认名为 dump.rdb,存放目录由 dir 指定(常见为 /var/lib/redis)。RDB 生成成本较高,不宜过频,异常退出不会触发快照。
- AOF(追加日志)
- 开启方式:配置 appendonly yes;落盘策略 appendfsync 建议设为 everysec(每秒落盘,性能与可用性平衡)。AOF 会定期重写(auto-aof-rewrite-percentage、auto-aof-rewrite-min-size),以压缩体积。
- 混合持久化(Redis 4.0+)
- 配置 aof-use-rdb-preamble yes,AOF 重写时将先写入 RDB 格式头部,再追加增量命令,兼顾启动速度与数据完整性。
三 定时冷备与异地容灾
- 本地定时快照备份(RDB)
- 思路:用脚本在业务低峰触发 BGSAVE,待快照完成后将 dump.rdb 拷贝到备份目录,并按时间做分层保留(如近48小时/近30天);使用 crontab 调度。示例(关键片段):
- 每小时备份并保留48小时
0 * * * * /usr/local/redis/copy/redis_rdb_copy_hourly.sh - 每天备份并保留30天
0 0 * * * /usr/local/redis/copy/redis_rdb_copy_daily.sh - 脚本要点:创建以时间命名的目录(如 %Y%m%d%H 或 %Y%m%d),拷贝当前 dump.rdb,清理过期目录;备份完成后可同步至远端存储(如 rsync/scp)。
- 每小时备份并保留48小时
- 思路:用脚本在业务低峰触发 BGSAVE,待快照完成后将 dump.rdb 拷贝到备份目录,并按时间做分层保留(如近48小时/近30天);使用 crontab 调度。示例(关键片段):
- 远程/云端备份
- 建议将每小时/每日备份自动同步到云对象存储或备用服务器,实现异地容灾;保留多份副本与多时间点,降低单点故障风险。
四 备份校验与恢复流程
- 校验
- RDB 文件可用 redis-check-rdb 校验完整性;AOF 文件异常可用 redis-check-aof --fix 修复。定期抽样恢复演练,确保备份可用。
- 恢复
- 场景A(仅用 RDB 冷备恢复)
- 停止 Redis → 备份并清空当前 AOF/RDB → 将备份 dump.rdb 放到 dir 指定目录并命名为 dbfilename → 启动 Redis 校验数据;如需 AOF,后续可在运行中开启 CONFIG SET appendonly yes,让 Redis 将内存数据回写到新 AOF。
- 场景B(AOF 为主,RDB 为兜底)
- 优先使用 AOF 自动恢复;若 AOF 损坏,先修复再启动;若无可用 AOF 且仅有 RDB,按“场景A”流程用 RDB 恢复,再按需开启 AOF 回写补齐日志。
- 注意
- 恢复前确认 dir 与 dbfilename 配置;AOF 与 RDB 同时开启时,Redis 默认以 AOF 为主,做 RDB 冷备恢复时通常需要临时关闭 AOF 以避免被空 AOF 覆盖。
- 场景A(仅用 RDB 冷备恢复)
五 关键配置与脚本示例
- 关键配置(示例)
# RDB快照策略(可按业务调优) save 900 1 save 300 10 save 60 10000 # 数据目录与文件名 dir /var/lib/redis dbfilename dump.rdb # AOF appendonly yes appendfsync everysec auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 混合持久化(Redis 4.0+) aof-use-rdb-preamble yes - 触发快照与拷贝(示例)
# 1) 触发后台快照 redis-cli BGSAVE # 2) 等待快照完成后拷贝(示例路径,按实际修改) cp /var/lib/redis/dump.rdb /backup/redis/dump_$(date +%F_%H%M).rdb - 定时任务(示例)
提示:脚本内应先确认 BGSAVE 已完成再拷贝,避免拿到不完整快照;拷贝完成后可 rsync/scp 到远端做异地备份。# 每小时一次 RDB 冷备,保留48小时 0 * * * * /usr/local/redis/copy/redis_rdb_copy_hourly.sh # 每天一次 RDB 冷备,保留30天 0 0 * * * /usr/local/redis/copy/redis_rdb_copy_daily.sh
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Redis备份策略是什么
本文地址: https://pptw.com/jishu/781540.html
