Java高性能开发实战(1)——Redis 7 持久化机制
·
Redis 7 持久化机制概述
Redis 7 提供两种持久化机制:RDB(快照)和AOF(追加文件),用于确保数据在重启或故障后不丢失。两种机制可单独或组合使用,平衡性能与数据安全性。
RDB(快照持久化)
RDB 通过生成某个时间点的数据快照实现持久化,适合备份和灾难恢复。
触发方式
- 手动触发:执行
SAVE(阻塞主线程)或BGSAVE(后台子进程执行)。 - 自动触发:通过配置文件设置条件,例如
save 900 1表示900秒内至少1次修改时触发。
优点
- 二进制压缩文件,体积小,恢复速度快。
- 适合大规模数据备份。
缺点
- 可能丢失最后一次快照后的数据。
- 频繁保存可能影响性能。
配置示例
# redis.conf
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis
AOF(追加文件持久化)
AOF 记录所有写操作命令,通过重放命令恢复数据,提供更高的数据安全性。
同步策略
- appendfsync always:每条命令同步写入磁盘,数据最安全,性能最低。
- appendfsync everysec(默认):每秒同步一次,平衡性能与安全。
- appendfsync no:由操作系统决定同步时机,性能最好但可能丢失数据。
优点
- 数据丢失风险低(取决于同步策略)。
- 支持日志重写(
BGREWRITEAOF)压缩文件体积。
缺点
- 文件体积通常比RDB大。
- 恢复速度较慢。
配置示例
# redis.conf
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
混合持久化(Redis 4+ 特性)
结合RDB和AOF的优势,重启时先加载RDB快照,再重放AOF增量命令。
启用方式
# redis.conf
aof-use-rdb-preamble yes
性能优化建议
- RDB:在低峰期配置自动触发,避免频繁BGSAVE。
- AOF:使用
everysec策略,权衡性能与安全性。 - 混合持久化:优先选择,尤其在Redis 7中优化了AOF重写效率。
监控与维护
- 使用
INFO PERSISTENCE查看持久化状态。 - 定期检查RDB和AOF文件完整性。
- 避免AOF文件过大导致恢复时间过长。
更多推荐



所有评论(0)