根据持久化的上篇 我们了解了 RDB持久化 AOF持久化
除此之外 Redis7还支持RDB加AOF混合持久化的方式
1 RDB+AOF混合持久化模式
什么是RDB+AOF混合持久化
在 Redis 中,RDB(快照)和 AOF(追加文件)是两种主要的数据持久化方式。RDB+AOF 混合持久化是指同时使用这两种方式来保证数据的持久性和安全性。
可否共存?
RDB和AOF是可以共存的
谁占主导地位
混合持久化时,AOF更占主导地位
数据恢复时的执行流程(面试题)
开启混合持久化的方式
1 开启混合方式设置
配置文件中设置aof-use-rdb-preamble的值为 yes yes表示开启,设置为no表示禁用
2 RDB+AOF的混合方式---------> 结论:RDB镜像做全量持久化,AOF做增量持久化
先使用RDB进行快照存储,然后使用AOF持久化记录所有的写操作,当重写策略满足或手动触发重写的时候,将最新的数据存储为新的RDB记录。这样的话,重启服务的时候会从RDB和AOF两部分恢复数据,既保证了数据完整性,又提高了恢复数据的性能。简单来说:混合持久化方式产生的文件一部分是RDB格式,一部分是AOF格式。----》AOF包括了RDB头部+AOF混写
2 纯缓存模式
该模式的意义为 关闭所有自动持久化的触发机制(Rdb 和 Aof) 只允许手动触发持久化
2.1 禁用RDB
配置文件中设置为
Save ""
设置以上配置后,我们任然可以使用Save(不推荐使用save) 和 BGSave 来手动的执行RDB持久化
2.2 禁用AOF
配置文件中设置
appendonly no
设置以上配置后,我们任然可以使用 bgrewriteaof 来手动的执行RDB持久化
3 Redis7持久化总结
持久化是指将数据存储在磁盘上,以确保在Redis服务器重启后数据不会丢失。Redis 7引入了几种持久化方式
1. RDB(Redis Database)
- RDB持久化方式是将Redis的数据在指定时间间隔内生成一个快照(Snapshot)并保存到磁盘上。
- 这个快照是一个二进制文件,包含了某个时间点上所有的数据。
- RDB适合用于数据备份、全量数据恢复等场景。
- 通过设置不同的保存策略,可以控制生成快照的频率,例如通过设置save命令来指定快照生成的条件。
2. AOF(Append Only File)
- AOF持久化方式是通过记录Redis服务器执行的写命令来记录数据的每一次变动操作。
- 这种方式以追加的方式将写命令追加到AOF文件末尾,使得AOF文件中包含了数据库从启动开始所有的写操作。
- AOF文件是一个文本文件,以Redis协议的格式记录了写命令的操作。
- AOF适合用于数据完整性要求较高的场景,因为它记录了每一次数据变动的操作。
3. Mixed AOF and RDB(混合持久化)
- Redis 7中引入了混合持久化,即将AOF和RDB两种持久化方式结合起来使用。
- 在混合持久化中,Redis首先会将数据写入AOF文件,然后再根据需要定期生成RDB快照。
- 这种方式兼具了AOF的数据完整性和RDB的快速恢复特性。
- 可以通过设置不同的参数来调整AOF和RDB的持久化策略,以满足不同场景下的需求。
4 建议配置
建议开启Rdb 和 Aof 的混合持久化
言外之意就是 开启 aof持久化 并 开启 rdb和 aof的混合持久化
rdb和 aof 的其余配置 都建议 设为默认即可