文档首页> 技术教程> Redis 持久化:RDB 与 AOF 怎么选

Redis 持久化:RDB 与 AOF 怎么选

发布时间:2026-02-06 22:39        更新时间:2026-02-07 07:59
Redis 重启之后数据还在不在,取决于持久化配置怎么写。Redis 默认把数据放内存里,进程一退,内存里的东西就没了;持久化就是定期把内存数据落到磁盘的两套办法:RDB(快照)和 AOF(追加日志)。两者定位不同,多数生产环境配合使用。 一、机制差别 RDB 按策略给整个数据集拍快照,默认配置是 save 900 1、save 300 10、save 60 10000,意思是 900 秒内至少 1 次写入、300 秒内 10 次写入、60 秒内 1 万次写入时触发。快照是紧凑的二进制文件,恢复时直接加载,文件小、速度也快。 AOF 记录每一条写命令,追加进日志文件,刷盘频率由 appendfsync 控制,可选 always、everysec、no 三档。生产上一般用 everysec,每秒刷一次磁盘,性能和安全取折中。 二、恢复速度与丢失窗口 恢复速度 RDB 明显占优:直接载入二进制快照,几个 G 的数据通常一分钟内完成。AOF 要把日志逐条重放,同一个数据集往往要几分钟。 丢失窗口正好相反。RDB 两次快照之间的写入,宕机就丢了,按默认策略最坏丢几分钟;AOF 配 everysec,最多丢一秒左右。拿"恢复快"换"丢得少",还是反过来,是选型的核心权衡。 三、混合持久化 Redis 4.0 引入混合模式:AOF 重写时先写入 RDB 格式的全量数据,再追加增量命令,文件头是快照、尾巴是日志。开启方式是配置里写 aof-use-rdb-preamble yes,5.0 之后默认开启。恢复时先加载快照再重放少量命令,速度和丢失窗口两头都占到。 四、怎么选 纯缓存用途、数据丢了能从源头重建的,只用 RDB 就够,省磁盘省心。数据不能丢的业务,开 AOF 配 everysec,或者直接用混合持久化。无论选哪种,持久化文件都别和数据实例放在同一块盘上,最好再定期同步一份到别的机器——磁盘真坏的时候,这份冗余才见分晓。