- Redis的持久化操作之RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读入内存中。
rdb保存的文件是dump.rdb
rdb的效率要比aof的效率要高,一般都采用rdb的方法进行持久化操作。
文件的配置
==save 60 5 == 在60s内只要有5个值发生了变化,就进行持久化操作。
触发机制
1.执行了flushdbAll命令
2.save规格满足的情况下会触发rdb规则。
3.退出Redis的时候,也会产生rdb文件。
如何恢复rdb文件
只需要将rdb文件放在Redis的目录下,Redis在启动时候就会去自动检查dump.rdb文件,恢复其中的数据。
查看需要存在的位置
config get dir
优点
1.适合大规模的数据恢复。
2.对数据的完整性不高。
缺点:
1.需要一定的时间间隔进程操作,如果Redis意外宕机了,最后一次修改的数据就没了。
2.fork进程的时候回占用一定的内存空间。
-
Redis的持久化操作之AOF
append only file 追加文件
以日志的形式来记录每个写的的操作,将Redis所有的指令记录下来(读操作不记录),Redis启动后就会读取文件重新构建数据。
换言之就是讲Redis记录的命令重新执行一遍。
appendonly.aof 文件。
默认是不开启的需要手动进行配置
appendonly yes Redis重启就可以生效了
如果aof文件有错误,Redis是无法启动的,我们需要修复aof文件 。
Redis提供一个工具 redis-check-aof
修复成功后,可能会有数据的丢失。
优点: -
每一次的修改都会同步,保证了文件的完整性。
-
每秒同步一次,可能会丢失一秒的数据。
3.从不同步效率是最高的。
缺点:
1.相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢
2.aof的运行效率比rdb低
重写规则:
如果aof文件大于64mb,就会fork一个新的进程来将我们的文件进行重写。