redis 持久化_rdb

通过上一节的redis持久化中我们了解到redis 持久化的方式有两种:RDB和AOF,本节就来详细讲解redis官方推荐的持久化方式:RDB。

redis  RDB 持久化方案指的是在指定的时间间隔内,执行了多少次写的操作,则会将redis内存中的数据写入到磁盘文件中。简单的说就是在一段时间内执行了多少次插入操作时,就会在指定的备份路径生成一个dump.rdb文件。这个文件用于redis重启时加载,来恢复数据用的。


redis rdb 自动备份

redis rdb持久化是redis服务器自动控制执行的,它通过获取redis.config配置文件当中配置的策略,自动持久化到指定文件目录中。下面来详细讲解一下redis rdb自动备份的配置过程。

1、打开 redis.conf 文件,找到 SNAPSHOTTING 对应内容,如下图所示:

redis 持久化_rdb

配置讲解:

save <seconds> <changes>指的就是在指的的时间内(seconds),有出现多少次变更操作(changes)就会把数据同步到磁盘文件当中。这里红框地方是官方给出的配置,官方默认是900秒内有一个更改操作,300秒内有10个更改操作,60秒内有10000个更改操作,就会把内存中的数据快照写入磁盘文件中。假如你不想按照

满足条件就将内存中的数据同步到硬盘中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的数据快照写入磁盘。若不想使用官方提供的配置,可以按照自己的需求调整参数。

2、指定备份到本地的路径和本地文件名,这里红框中 dump.rdb就是备份后的数据文件名,dir ./指的是文件存在当前redis安装目录下,配置如下:

redis 持久化_rdb

3、里面还有一个参数配置就是rdbcompression yes,指的是是否开启压缩模式,假如不开启压缩存储,那么文件将会比较大,占用空间。


通过RDB文件恢复数据

redis rdb文件恢复数据也非常简单,只要把dump.rdb文件拷贝到redis安装目录下,重启redis服务即可完成数据的恢复。

redis rdb主动备份

redis rdb还支持通过命令主动进行数据的持久化,是通过save命令和bgsave命令(后台子进程)进行主动备份数据到指定的目录下。具体的命令如下:

#同步执行 rdb备份,不会消耗额外内存,阻塞客户端命令,必须等待备份完,才可以执行命令。
save
#异步执行,通过fork一个子进程,不会阻塞客户端命令,但是会额外消耗内存,要生产备份的数据集。
bgsave

具体执行结果如下:

redis 持久化_rdb