redis的 rdb 和 aof 持久化的区别

2025-06-24 14:43:02
推荐回答(1个)
回答1:

Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘,Redis默认支持的持久化方案
Aof:append only file。把所有对redis数据库操作的命令,增删改操作的命令保存到文件中,数据库恢复时把所有命令执行一遍
Rdb:优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能
缺点:RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候
AOF:优点:可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)。
缺点:AOF文件比RDB文件大,且恢复速度慢。