redis中的RDB持久化详解

Posted malike

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis中的RDB持久化详解相关的知识,希望对你有一定的参考价值。

1. 如何在redis中配置RDB持久化文件

 在redis持久化中  默认是开启RDB模式的。这里我们只需要对RDB进行配置即可

 

技术图片

在上面有三个配置选项 分别是    

每隔900秒  有一条key进行变更

每个300秒 有10条key进行变更

没隔60秒  有10000条key进行变更。

以上任意条达成条件后,就会重新生成一个dump.rdb文件。就是当前redis内存中完整的快照,这个操作也被称之为snapshotting,快照也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成

save可以设置为多个,也就是多个snapshotting检查点,每到一个检查点,就会去check一下,检查是否有指定数量的key发生了变更,如果有那么就会生成一个新的dump.rdb文件。

 

 

2. RDB持久化是的工作流程

  (1).redis会根据自己的配置去尝试rdb快照文件。

  (2) fork出一个子进程

  (3)子进程会将当前的dump文件快照到 rdb临时文件当中。

  (4)完成rdb快照文件的生成之后,那么就会替换以前的老快照。

 

3、基于RDB持久化机制的数据恢复实验数据还在,为什么?

技术图片

我们在redis中存入几条数据

 

技术图片

在使用redis-cli SHUTDOWN  停掉redis 

 

技术图片

这个时候我们进入到存放快照的目录进行查看。

可以看到数据依旧是存在的。

 

带出来一个知识点,通过redis-cli SHUTDOWN这种方式去停掉redis,其实是一种安全退出的模式,redis在退出的时候会将内存中的数据立即生成一份完整的rdb快照

/var/redis/6379/dump.rdb

 


(2)在redis中再保存几条新的数据,用kill -9粗暴杀死redis进程,模拟redis故障异常退出,导致内存数据丢失的场景这次就发现,redis进程异常被杀掉,数据没有进dump文件,几条最新的数据就丢失了

 技术图片

使用 kill -9 的方式杀掉redis进程。

 

技术图片

在进入到存放快照的文件目录查看快照文件  并没有进行生成。

(3) 我们这里在做一个实验,重新对conf文件进行配置,配置成每五秒进行一次快照,在进行一次实验

技术图片

设置成 没五秒有1个key进行变更那么就会生成新的dump.db文件

 

技术图片

使用kill杀死进程过后  我们可以看到快照文件是生成了的

以上是关于redis中的RDB持久化详解的主要内容,如果未能解决你的问题,请参考以下文章

Redis持久化之RDB和AOF

第126天学习打卡(Redis redis.conf详解 Redis持久化 RDB AOF)

Redis的持久化机制详解—RDB与AOF持久化

Redis持久化方式RDB与AOF详解

redis持久化详解

缓存-redis持久化机制(RDB和AOF)