Redis 在 Debian 上的备份策略
一 持久化机制选型
二 备份策略组合与适用场景
| 策略 | 做法 | 优点 | 风险/注意 | 适用场景 |
|---|---|---|---|---|
| RDB 定时快照 | 配置 save 策略 + 定时执行 BGSAVE 或远程 redis-cli --rdb 导出 | 文件小、传输快、恢复极快 | 两次快照间可能丢数据;大数据集 fork 可能阻塞 | 缓存、可接受分钟级丢失、需快速恢复 |
| AOF 持续日志 | 启用 appendonly yes,fsync everysec,定期 BGREWRITEAOF | 数据更完整,最多丢1秒 | 体积大、恢复慢 | 强一致/低丢失容忍业务 |
| RDB + AOF 混合 | 同时开启 RDB 与 AOF,启用 aof-use-rdb-preamble | 启动快、数据更完整 | 运维复杂度略高 | 通用生产推荐 |
| 主从复制 + 备份从库 | 配置 replicaof,在从库上执行 RDB/AOF 备份 | 不影响主库性能,可做时间点备份 | 异步复制有延迟窗口 | 高可用与备份一体化 |
| 异地/离线备份 | 定期将 RDB/AOF 复制到对象存储/异地机房 | 提升容灾能力 | 传输与一致性校验成本 | 关键业务容灾 |
| 逻辑导出/导入 | 使用 redis-dump/redis-sync 或 redis-cli < dump.rdb | 跨版本/跨实例迁移方便 | 大数据量性能差,可能不一致 | 迁移、开发/测试环境 |
三 自动化备份与保留(Debian 实践)
#!/usr/bin/env bash
set -e
BACKUP_DIR="/opt/redis-backup"
REDIS_CLI="redis-cli"
RDB_SRC="/var/lib/redis/dump.rdb"
TS=$(date +%Y%m%d%H%M%S)
mkdir -p "$BACKUP_DIR"
$REDIS_CLI BGSAVE
sleep 10 # 等待快照完成(可按实例大小调整)
cp "$RDB_SRC" "$BACKUP_DIR/dump-$TS.rdb"
gzip "$BACKUP_DIR/dump-$TS.rdb"
find "$BACKUP_DIR" -type f -mtime +7 -name '*.rdb.gz' -delete
echo "Backup completed: $BACKUP_DIR/dump-$TS.rdb.gz"
四 恢复流程与注意事项
五 高可用与备份协同