Redis持久化RDB和AOF怎么选?看完就懂了

Mei Lin | 2026-08-07T08:59:00 | DevOps, Database

Redis持久化方案选型指南,RDB和AOF的原理、优缺点和混合持久化最佳实践

# Redis持久化RDB和AOF怎么选?看完就懂了 Redis数据都在内存里,不做持久化重启就全丢了。但RDB和AOF该怎么选? ## RDB(快照) ```redis # redis.conf 配置 save 900 1 # 900秒内有1次修改就触发 save 300 10 # 300秒内有10次修改就触发 save 60 10000 # 60秒内有10000次修改就触发 ``` 原理:fork子进程,把内存数据dump成二进制文件。 ``` 优点:文件小、恢复快 缺点:fork时内存翻倍(Copy-on-Write)、可能丢最后几分钟数据 ``` ## AOF(日志追加) ```redis # redis.conf 配置 appendonly yes appendfsync everysec # 每秒刷盘一次(推荐) # appendfsync always # 每条命令都刷盘(最安全但最慢) # appendfsync no # 交给OS决定(最快但可能丢数据) ``` 原理:每个写命令都追加到日志文件。 ``` 优点:最多丢1秒数据 缺点:文件大、恢复慢、需要定期rewrite ``` ## 最佳实践:混合持久化(Redis 4.0+) ```redis # 同时开启RDB和AOF,AOF rewrite时用RDB格式 aof-use-rdb-preamble yes ``` 混合模式下AOF文件 = RDB头 + AOF尾,兼顾恢复速度和数据安全。 | 方案 | 数据安全 | 恢复速度 | 文件大小 | |------|---------|---------|---------| | 只RDB | 可能丢分钟级 | 快 | 小 | | 只AOF | 最多丢1秒 | 慢 | 大 | | 混合 | 最多丢1秒 | 快 | 中等 | **生产环境推荐混合持久化**,同时做好主从复制作为兜底。

← Back to Blog