码迷,mamicode.com
首页 > 数据库 > 详细

010 redis持久化之RDB

时间:2018-04-06 15:28:13      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:cache   进阶   数据持久化   dump.rdb   emc   优劣   直接   概述   9.png   

一 . 概述 

redis的持久化功能是决定redis可以作为一定功能数据库的核心.

在redis之中总共有两种方式进行持久化,一种是RDB,一种是AOF的方式.

注意:我们不需要一定使用redis的持久化功能,不使用持久化功能,就

决定我们是把redis作为一种缓存使用,这和memcache没什么区别了.


 

二 .RDB的基本原理

redis是单进程的,当我们开启RDB数据持久化之后,redis就会fork一个新进程帮助实现RDB的功能.

其实RDB的功能十分简单,就是定时快照一下redis的内存.当快照完成之后,就去替换原先的快照内容.

当redis下一次启动的使用直接将快照文件直接读入到redis之中就可以完成了.

快照的相关配置都集中在redis.conf文件之中.


 三 .查看redis.conf文件

我们找到redis配置文件的快照部分.

技术分享图片

如上图,这一部分就是redis的快照部分的配置内容.

注意 : redis默认使用的就是快照进行持久化的 .

保存策略:

  技术分享图片

上述的文字表示redis的RDB模式下的保存策略.

解释一下上述的文字 : 

[1]save 900 1 -- 900秒内写一次就会快照一次.

[2]save 300 10 ---300秒内10此写操作就会快照一次.

[3]save 60 10000 : 表示60秒之内有10000此操作,就会进行一次快照.

上述的快照策略我们可以修正,调整到一个比较好的方式.

当我们不设置任何save策略,那么RDB就不会进行快照了 .

技术分享图片

当我们出现RBD持久化错误的时候.是否禁止写操作的进行.

这样可以保证redis的数据的一致性,但是当错误出现的时候,会影响redis的使用.

技术分享图片

RDB持久化是否压缩: 默认情况下RDB会进行压缩.

如果想要进行最高性能,直接关闭压缩功能,但对存储的压力会变大.

技术分享图片

是否开启RDB的校验.

如果想要获取最高的性能,可以设置为no.当然数据的正确可能会出现问题.

技术分享图片

RDB文件的保存位置和保存的文件名称.

技术分享图片

我们查询redis.conf文件,就可以看到该文件下面有一个dump.rdb文件.这个就是rdb的快照文件.


 

四 .RDB的优劣

优势 : RDB的性能更高,因为RDB保存的最后的结果集.

劣势: RDB不是实时的,会造成数据的丢失.

       丢失的数据时最后一次数据的保存会被丢掉.

总结: 如果对数据的完整性要求不高,我们可以使用RDB的方式进行,这样的性能会更高.

 

进阶:

[1]RDB需要的内存开销更高,因为需要开启一个FORK一个进程进行RDB的监控.

[2]当数据量很大的时候,RDB的性能很差,因为快照一次的IO操作代价很大.


 

 

  

 

010 redis持久化之RDB

标签:cache   进阶   数据持久化   dump.rdb   emc   优劣   直接   概述   9.png   

原文地址:https://www.cnblogs.com/trekxu/p/8727505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!