Redis持久化机制深度解析
一、持久化核心方案
1. RDB(Redis Database)
工作原理:
定时生成内存快照(二进制压缩文件)
通过SAVE(阻塞)或BGSAVE(后台)命令触发
配置示例:save 900 1(900秒内至少1次修改时触发)
特点:
✅ 文件紧凑(适合备份/灾难恢复)
✅ 恢复速度快
❌ 可能丢失最后一次快照后的数据
2. AOF(Append Only File)
工作原理:
记录所有写操作命令(文本协议格式)
支持三种同步策略:
appendfsync always(每次写入同步)
appendfsync everysec(默认,每秒同步)
appendfsync no(由操作系统决定)
特点:
✅ 数据安全性更高
✅ 可读性强(可通过redis-check-aof修复)
❌ 文件体积较大
二、混合持久化(Redis 4.0+)
结合RDB和AOF优势
AOF文件包含:
RDB格式的全量数据
增量AOF日志
配置项:aof-use-rdb-preamble yes
三、关键配置参数
# RDB配置
dbfilename dump.rdb
dir /var/lib/redis
# AOF配置
appendonly yes
appendfilename "appendonly.aof"
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
四、数据恢复优先级
仅AOF开启时 → 加载AOF文件
仅RDB开启时 → 加载RDB文件
两者都开启时 → AOF优先
五、生产环境建议
建议同时开启RDB和AOF
RDB用于定时备份(如每日)
AOF使用everysec策略平衡性能与安全
监控aof_current_size和aof_base_size防止AOF膨胀