redis 持久化之rdb总结

1. rdb

 

1.1 rdb 概念
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话的SnapShot快照,它恢复时是将快照文化直接读到内存里

 

1.2 rdb 工作机制
每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中

 

1.3 rdb是默认开启的

 

1.4 rdb的持久化过程
redis会单独创建一个子进程来进行持久化,先将数据写入到一个临时文件中,等到持久化
过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何IO操作,这就确保了极高的性能。

 

1.5 rdb的优缺点
优点:数据恢复规模大,恢复完整性不敏感时,rdb比AOf更加高效
缺点:最后一次持久化的数据可能丢失

 

1.6 rdb的保存策略
save 900 1 900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10 300秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000 60秒内如果至少有 10000 个 key 的值变化,则保存
save “” 就是禁用 RDB 模式;

 

1.7 RDB的常用属性配置

属性含义备注
save 保存策略  
dbfilename rdb快照文件名  
dir rdb快照保存的目录 必须是一个目录,不能是文件名
stop-writes-on-bgsaveerror 是否在备份出错时,继续接受写操作 如果用户开启了 RDB 快照功能,那么在redis 持久化数据到磁盘时如果出现失败,默认情况下,redis 会停止接受所有的写请求
rdbcompression 对于存储到磁盘中的快照,可以设置是否进行压缩存储 如果是的话,redis 会采用 LZF 算法进行压缩。如果你不想消耗 CPU 来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
rdbchecksum 是否进行数据校验 在存储快照后,我们还可以让 redis使用 CRC64 算法来进行数据校验,但是这样做会增加大约 10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
 

1.8 rdb的触发

    • 1 拷贝rdb文件

    • 2 flushdb/flushAll 会产生默认的空的dump.rdb

    • 3 执行shutdown命令 也会主动的备份数据库

原文地址:https://www.cnblogs.com/mm163/p/10836036.html