目录
一、背景
二、RDB ( Redis DataBase )介绍
2.1 什么是RDB——redis的默认配置
2.2 rdb文件存储触发机制
2.3 如何恢复rdb文件
2.4 优缺点
一、背景
Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。
所以Redis提供了持久化功能
二、RDB ( Redis DataBase )介绍
2.1 什么是RDB——redis的默认配置
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。
Redis会单独创建( fork ) 一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
整个过程中,主进程是不进行任何I0操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。
RDB的缺点是最后一次持久化后的数据可能丢失。
rdb是redis的默认配置,配置内容如下:
存储的文件名默认为dump.rdb
2.2 rdb文件存储触发机制
1. 满足配置文件中的save规则时
2. 执行flushall命令时
3. 退出redis时
备份就会自动生成一个dump.rdb文件
save和bigsave的区别
save :save时只管保存,其它不管,全部阻塞。手动保存。不建议。
bgsave:Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。
可以通过lastsave 命令获取最后一次成功执行快照的时间
2.3 如何恢复rdb文件
只需要将rdb文件放置在redis启动目录即可
查看文件存储位置的命令
2.4 优缺点
优点
1、适合大规模的数据恢复
2、对数据的完整性要不高
缺点
1、需要一定的时间间隔进程操作!如果redis意外宕机了,这个最后一-次修改数据就没有的了
2、fork进程的时候,会占用一定的内容空间