Redis持久化
官网:https://redis.io/docs/manual/persistence/
一、RDB(Redis DataBase)
官网介绍:
1、是什么
在指定的时间间隔,执行数据收集的时间点快照。
实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就快照。这样一来即使故障宕机,快照文件也不会丢失,数据的可靠性也就得到了保证。
这个快照文件就称为RDB文件(dump.rdb),其中,RDB就是Redis DataBase的缩写。
2、能干嘛
①在指定的时间间隔内将内存中的数据集快照写入磁盘也就是行话讲的Snapshot内存快照,它恢复时再将硬盘快照文件直接读回到内存里。
②一锅端,Redis的数据都在内存中,保存备份时它执行的是全量快照-锅端也就是说,把内存中的所有数据都记录到磁盘中,一锅端。
③Rdb保存的是dump.rdb文件
3、案例演示
RDB保存到磁盘的文件叫dump.rdb
4、优势
官网说明:
适合大规模的数据恢复。
按照业务定时备份。
对数据完整性和一致性要求不高RDB 文件在内存中的加载速度要比 AOF 快得多。
5、劣势
官网说明:
6、如何检查修复dump.rdb文件
7、那些情况会接触RDB快照
8、如何禁用快照
9、RDB优化配置项详解
10、总结
二、AOF(Append Only File)
官网:
1、是什么
2、能干嘛
3、Aof保存的是appendonly.aof文件
4、AOF持久化工作流程
5、AOF缓冲区三种写回策略
6、案例演示和说明
7、AOF配置/启动/修复/恢复
8、优势
9、劣势
10、AOF重写机制
11、AOF优化配置项详解
12、总结
三、RDB-AOF混合持久化
官网建议
rdb vs aof 问题:①可否共存? ② 如果共存听谁的?
官网文档
数据恢复顺序和加载流程
你怎么选?用那个?
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。
AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件未尾.
同时开启两种持久化方式
在这种情况下,当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整。
RDB的数据不实时,同时使用两者时服务器重启也只会找AOF文件。
那要不要只使用AOF呢?
作者建议不要,因为RDB更适合用于备份数据库(AOF在不断变化不好备份),留着rdb作为一个万一的手段。
四、缓存模式
同时关闭RDB+AOF
1、savage “” 禁用rdb;禁用rdb持久化模式下,我们仍然可以使用命令save,bgsave生成rdb文件。
2、appendonly no 禁用aof; 禁用aof持久化模式下,我们仍然可以使用命令bgrewriteaof生成aof文件