Redis持久化(RDB)~

151 阅读2分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

Redis持久化

Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能 !

RDB(Redis DataBase)

rdb是redis的一种持久化方式,是在指定的时间对一定数量的key进行操作(不包括查)后系统会将据集快照写入磁盘,需要数据恢复时直接读取快照文件。

特点:

在Redis中,RDB机制会另外创建一个子进程来进行持久化操作,首先会将数据存入一个临时文件中去,等到所有持久化操作结束后,再将这个临时存储的文件替换掉上次持久化后的文件。在这个过程中主进程不会进行任何的IO操作。如果有大规模数据需要恢复,且对数据的完整性要求不是非常严格,那就可以采用RDB方式。

rdb保存的文件是dump.rdb,都是在我们的配置文件中快照中进行配置的!

触发机制

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

2、执行flushdb命令,也会触发我们的rdb规则

3、退出redis,也会产生rdb文件!

备份就自动生成一个dump.rdb

如何恢复rdb文件

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

2、查看需要存在的位置

 127.0.0.1:6379>config get dir
 1) "dir"
 2) "/usr/loca1/bin"     #如果在这个目录下存在 dump.rdb 文件,启动就会自动恢复其中的数据

默认的配置几乎就够用了。

优点:

  • 适合大规模的数据恢复!

  • 对数据的完整性要求不高!

缺点:

  • 需要一定的时间间隔操作进程!如果redis意外待机了,这个最后一次修改的数据就没有了!

  • fork进程的时候,会占用一定的内容空间!

明天继续加油!