2026-10-19 16:54:22
Redis通过两种主要方式实现持久化:RDB和AOF。
RDB(Redis Database)
RDB通过将内存中的数据以二进制格式定期保存到磁盘实现持久化。其核心机制基于时间与数据变更量的双重条件触发:
save 900 1:900秒内至少1个Key被修改时触发保存;
save 300 10:300秒内至少10个Key被修改时触发保存;
save 60 10000:60秒内至少10000个Key被修改时触发保存。
实际触发依赖dirty计数器(记录上次保存后修改的Key数量)和lastsave时间戳(记录上次保存时间)。当满足任一条件时,Redis会执行保存操作。
AOF(Append-Only File)
AOF通过记录所有写操作命令实现持久化,其核心机制包括:
always:每条命令立即同步到磁盘,数据安全性最高,但IO压力大;
everysec(默认):每秒同步一次,平衡性能与数据安全,最多丢失1秒数据;
no:由操作系统决定同步时机,性能最佳但可能丢失大量数据。
子进程读取当前数据库状态,生成最小化命令序列;
新命令暂存缓冲区,重写完成后追加到新AOF文件,替换旧文件。
两种模式对比