Redis持久化之RDB

一、RDB是什么

       Redis一旦断电或者宕机,那么内存数据库中的数据将会全部丢失。

  为了解决这个缺点,Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能。Redis 支持两种形式的持久化,一种是RDB快照(snapshotting),另外一种是AOF。

二、RDB自动配置

        在 redis.conf 配置文件中的 SNAPSHOTTING 下,有默认如下的配置。

        这里是用来配置触发 Redis的持久化条件,也就是什么时候将内存中的数据保存到硬盘。如果不想使用Redis缓存持久化,那么配置为 save ""

#表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 900 1
#表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 300 10
#表示60 秒内如果至少有 10000 个 key 的值变化,则保存
save 60 10000

三、RDB手动配置

        在Redis的客户端中执行bgsave命令。(save命令会阻塞整个Redis服务器,一般不用)

         此时会生成一个叫做dump.rdb的文件在客户端的目录下。RDB持久化会把内存中的缓存数据持久化到磁盘上,下次启动的时候,Redis会读取这个dump.rdb文件,达到恢复内存的目的。

四、优缺点

        (1)RDB的速度相对AOF持久化速度快一点。

        (2)在保存rdb文件的时候,主进程会fork一个子进程,实际去做持久化的是子进程,主进程不会阻塞。

        (3)缺点是:RDB不是实时持久化的,如果Redis宕机,可能会丢失最近几分钟内的缓存数据。

刻意练习

        (1)Redis的持久化策略有什么?

        (2)bgsave与save的区别是什么?

        (3)RDB的优点是什么?

        (4)RDB的缺点是什么?

posted @ 2022-07-17 12:13  小大宇  阅读(94)  评论(0编辑  收藏  举报