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

redis中的RDB持久化详解

时间:2019-02-27 01:35:17      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:conf   知识点   数据恢复   流程   自己的   snapshot   目录   持久化   width   

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持久化详解

标签:conf   知识点   数据恢复   流程   自己的   snapshot   目录   持久化   width   

原文地址:https://www.cnblogs.com/malike/p/10441145.html

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