一:RDB的介绍
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将 快照文件直接读到内存里. rdb默认保存的是dump.rdb文件
二:配置位置
在redis的redis.conf文件中SNAPSHOTTING(快照)中对rdb进行配置:
1.save
save 秒钟 写操作次数
RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件,
默认是1分钟内改了1万次, 或5分钟内改了10次,或15分钟内改了1次,就是触发创建RDB文件
如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以
2.stop-writes-on-bgsave-error
如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制
3. rdbcompression
rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用
LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
4. rdbchecksum
rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大 约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
三:手动触发RDB
使用save或bsave命令
Save:save时只管保存,其它不管,全部阻塞
BGSAVE:Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。可以通过lastsave
命令获取最后一次成功执行快照的时间
注意点: 执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义
四: 优势/劣势
优势:
适合大规模的数据恢复,对数据完整性和一致性要求不高
劣势:
在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改