08.RDB与AOF的比较与混合持久化

RDB与AOF的比较

RDB: 内存快照形式, 二进制文件体积小,恢复数据速度快,容易丢失数据。
AOF: 存储指令形式, 指令多故而aof文件体积大, 需要一条条执行指令恢复数据故而恢复速度慢,但数据安全性高。

命令 RDB AOF
启动优先级
文件体积
恢复速度
数据完整性 容易丢失数据 数据完整性高

redis启动时如果既有rdb文件又有aof文件则优先选择aof文件恢复数据,因为aof一般来说数据更全一 点。

Redis 4.0 混合持久化

Redis4.0 支持混合持久化,结合了RDB与AOF持久化的优点。通过如下配置可以开启混合持久化:

# aof-use-rdb-preamble yes

如果开启了混合持久化,那么appendonly.aof的文件格式是这样的:
在这里插入图片描述
恢复数据时,先加载RDB的快照,就已经恢复了很大一部分数据,然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放,因此重启效率大幅得到提升。
有AOF日志写入,会追加到aof文件的后面,如果发生了AOF重写,会将重写这一刻之前的内存做RDB快照处理,并且将RDB快照内容和增量的AOF修改内存数据的命令存在一 起,都写入新的AOF文件,新的文件一开始不叫appendonly.aof,等到重写完新的AOF文件才会进行改 名,原子的覆盖原有的AOF文件,完成新旧两个AOF文件的替换。
在这里插入图片描述
bgrewriteaof 手动AOF重写
bgsave 手动RDB持久化

猜你喜欢

转载自blog.csdn.net/lglglglglgui/article/details/108737007