###1.RDB(reids database)
含义:在指定时间间隔内将内存中的数据集快照写入磁盘,进行数据恢复时将磁盘中的数据集直接读入内存呢。
工作机制:每隔一段时间将内存中的数据保存到硬盘中的指定文件中
保存策略:
save 900 1 900 秒内如果至少有1 个key 的值变化,则保存
save 300 10 300 秒内如果至少有10 个key 的值变化,则保存
save 60 10000 60 秒内如果至少有10000 个key 的值变化,则保存
优点:每隔一段时间进行保存,适合进行数据的备份
RDB是一个紧凑的单一文件,能够很方便的上传云端,非常适用于灾难恢复
与AOF相比,恢复大的数据集时候速度相对较快
缺点:因为数据是按照一段时间间隔进行备份,若是发生意外,会造成比较多的数据损失
###2.AOF(append only file)
含义:AOF是以记录日志的方式记录每一次操作数据,reids重启时读取该日志文件,重新执行命令来恢复数据。默认不开启,若开启,以该方法为优 先数据恢复方法
工作机制:将每次的新建更新操作记录到日志,实现数据备份
优点:备份机制更稳健,损失的数据更少
可读测日志文件
缺点:比起RDB消耗更多的系统资源
备份速度比RDB更加慢
存在个别bug使得无法恢复备份
保存策略:
appendfsync always:每次产生一条新的修改数据的命令都执行保存操作;效率低,但是安全!
appendfsync everysec:每秒执行一次保存操作。如果在未保存当前秒内操作时发生了断电,仍然会导致一部分数据
丢失(即1 秒钟的数据)。
appendfsync no:从不保存,将数据交给操作系统来处理。更快,也更不安全的选择。
推荐(并且也是默认)的措施为每秒fsync 一次, 这种fsync 策略可以兼顾速度和安全性。