010 redis持久化之RDB

一 . 持久化概述 redis

redis的持久化功能是决定redis能够做为必定功能数据库的核心.算法

所谓的持久化就是将内存数据能够转存到磁盘之上,而后再特定时刻能够将磁盘文件的信息转存到内存之中.数据库

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

  [注意]性能

    咱们使用redis并不必定要使用持久化,只是在须要持久的时候才去用,spa

      持久化就意味着性能的代价,可是带来的是高可用的回报.线程


 二 .持久化的方式日志

在redis之中的两种持久化的方式,RDB,AOF.blog

其本质上讲:RDB是按照内存快照的方式进行,AOF是按照日志的方式进行.进程


 三 .RDB的基本原理

当咱们开启RDB的使用时,redis会按照必定的策略进行快照.

本质上讲很是简单,就是建立一个快照文件,当完成时就去替换以前存在的文件.

  RDB的触发方式:

    手工触发: 可使用save()或者bgsave()命令进行触发

    被动触发: 当咱们的redis使用复制功能的时候,底层默认的实现方式就是RDB快照文件的复制.


 四 .save和bgsave命令

[1]save命令是一个同步命令,会发生线程阻塞,所以咱们通常不会去使用. 

  在线程阻塞时,觉得着redis不会向其余客户端服务,本质上是因为redis的单进程模型决定

[2]bgsave命令:

  客户端向redis发起bgsave命令以后,redis会fork一个子进程完成RDB持久化工做.

  此时会直接向客户端返回一个成功响应.

  bgsave是一个异步的非阻塞的命令,通常状况下咱们会去使用这个命令来完成.

    [注意]持久化会花费必定的时间,此时客户端可能对数据进行修改,这个时候咱们持久的数据可能形成

    不一样步的状况,这个问题咱们后面须要进行解决.


 五 . RDB的配置

咱们首先打开redis的配置文件,找到快照部分的配置.下面咱们来讲一下主要的配置内容:

[1] RDB策略

该配置的含义是表明900秒内有一次操做,或者300秒内10此操做,60秒内10000条操做,

此时会触发RDB的持久化.

  [注意]咱们通常不会使用这写持久化策略,由于太死板了.

    咱们通常会作一个定时任务,按照本身的业务逻辑决定是否持久化,使用的持久化的命令就是bgsave.

    所以,该处的save策略咱们通常都会去掉.

 

[2]当使用bgsave命令错误时,是否中止写操做

这个配置咱们通常都会配置未yes.

 

[3]RDB文件是否采用压缩

  这个咱们通常都会采用压缩的算法

 

[4]RDB的校验模式

咱们通常也会开启这个校验的模式

 

[5]RDB持久化的文件的名字

 

[6]指定持久化文件的存放路径

相关文章
相关标签/搜索