Redis是一个内存数据库,但是也支持持久化操作
1.RDB
在指定时间间隔将内存中的数据集体快照写入磁盘,恢复时是将快照文件直接读到内存中
Redis会单独创建一个子进程来进行持久化,先将数据写入一个临时文件。等到写入结束后再用临时文件替换之前的文件。这个过程中,主进程将不进行任何IO操作。
如果需要进行大规模数据恢复,并对数据恢复的完整性要求不是特别精确 。RDB的效率将高于AOF。
缺点:RDB的最后一次持久化后的数据可能会丢失
RDB保存的文件默认为dump.rdb,可在配置中修改
触发条件
- 满足save规则
- 执行flushall
- 退出redis
2.AOF(append only file)
将我们的命令记录下来,恢复到额时候再把这个文件全部执行一遍。只许追加但不可以改写文件。(读操作不记录)
如果aof文件有问题会启动失败,可以通过redis-check-aof修复文件
优点:
- 每次修改都可同步,完整性高
- 每秒同步一次,丢失数据只有一秒
- 从不同步,效率高
缺点: - 文件大,恢复速度也慢与rdb
- 允许效率慢于rdb