什么是RDB
RDB:Redis DataBase
简单的说,就是在指定的时间间隔内将内存中的所有数据以快照的方式写入磁盘(Snapshot快照),恢复时将快照文件读到内存
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件,等待本次持久化过程结束之后,再用这个临时持久化文件替换掉上次持久化好的文件。整个过程中,主进程不进行任何的IO操作,确保了极高的安全性。
如果需要进行大规模的数据恢复,并且数据恢复的完整性不是非常敏感,那么RDB的方式要比AOF高效的多。
Redis默认的持久化就是RDB,保存的文件是dump.rdb,一般情况下我们不需要修改这个配置。
优点
:适合对大规模的数据进行恢复,效率较高
缺点
:可能会丢失最后一次持久化后的数据。
RDB配置
配置文件中有关『SNAPSHOTTING』的部分既RDB配置规则,具体配置的含义请参考 Redis-12、配置文件详解 中的『3.快照相关』部分
RDB触发规则
- 满足save规则,会自动触发rdb规则
- 执行flushall命令,会自动触发rdb规则
- 正常退出Redis,会自动触发rdb规则
触发rdb规则,会自动生成一个dump.rdb文件
恢复RDB文件
在Redis启动目录中如果存在rdb文件,在自动的时候会自动检查dump.rdb恢复其中的数据,程序员几乎不需要做任何的修改,默认配置就够用了
查看需要存在的位置:
127.0.0.1:6379> config get dir
1) "dir"
2) "/Users/sunlibin/TechKit/redis-5.0.4/bin"
在生产环境,我们一般会进行dump.rdb的备份