首页
点滴
Redis持久化操作之RDB
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 #### RDB持久化流程 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 #### 优势 1、适合大规模的数据恢复 2、对数据完整性和一致性要求不高更适合使用 3、节省磁盘空间 4、恢复速度快 #### 劣势 1、Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑 2、虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能。 3、在备份周期在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改。 #### RDB相关配置信息 1、`save` RDB持久化策略,默认已启用,如需关闭持久化策略则可以放开`save ""` 的注释即可 默认策略是3600秒(一小时)内改了1次,或300秒(5分钟)内改了10次,或60秒(1分钟)内改了1万次,则触发RDB持久化备份数据。 如需自定义持久化策略则可以放开下面三行save的注释再自己设置相应的时间。 ![](/images/20211112113347447.png) 2、`stop-writes-on-bgsave-error` 当Redis无法写入磁盘的话,直接关掉Redis的写操作。推荐yes. 3、`rdbcompression` 压缩文件。对于存储到磁盘中的快照,可以设置是否进行压缩存储。设为yes,redis会采用LZF算法进行压缩。如果不想消耗CPU来进行压缩的话,可以设置为no关闭此功能。推荐yes. 4、`rdbchecksum` 检查完整性。在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能,推荐yes. ![](/images/20211111034541054.png) 5、`dbfilename` 文件名。RDB备份文件名默认dump.rdb,可自定义文件名 6、`dir` 文件保存路径。默认为Redis启动时命令行所在的目录下,可自定义文件保存路径 ![](/images/20211111034556518.png)
博客分类
源码解析 (1)
多线程 (5)
Java (10)
Linux (8)
Docker (9)
SpringBoot (14)
微服务 (1)
Redis (15)
MySQL (7)
VMware (3)
Nginx (15)
MyBatis (2)
RabbitMQ (1)
Git (7)
工具类 (12)
前端 (3)
友情链接
layui
© 2020-2025 www.chenhuazhan.com All Rights Reserved 备案号:
桂ICP备17004487号-1
粤公网安备44030002005146