当前位置:   article > 正文

redis持久化之RDB_redis save a b 二者满足一个就会执行刷磁盘吗

redis save a b 二者满足一个就会执行刷磁盘吗

Redis持久化

面试和工作,持久化都是重点

Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以Redis提供持久化功能。
先看如下流程图
在这里插入图片描述

RDB

在指定的时间间隔内,将内存中的数据快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF更加的搞高效。RDB的缺点就是最后一次持久化后的数据可能丢失。我们默认的就是RDB,一般情况下不需要修改这个配置。

RDB保存的文件是dump.rdb

触发机制

1.save的规则满足的情况下,会自动触发rdb规则

2.执行flushall,也会触发rdb的规则

3.退出redis,也会生成一个dump.rdb

如何恢复rdb文件

1.只需将rdb文件放到我们redis的启动目录下就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据

2.几乎他自己默认的配置就够用了,但是我们还是要去学习

优点:

1.适合大规模的数据恢复

2.对数据完整性要求不高

缺点:

1.需要一定的时间间隔进行操作,如果redis意外宕机了,这个最后一次修改的数据就没有了。

2.fork进程的时候,会占用一定的内存空间。

所以有时候我们在生产环境会对这个dump.rdb文件进行备份。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/718021
推荐阅读
相关标签
  

闽ICP备14008679号