Redis持久化
RDB(Redis DataBase)
优缺点:
- 进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,RDB比AOF方式更加高效
- RDB最后一次持久化之后的数据可能丢失。
- fork进程时,会占用cpu和内存资源
触发机制
- save的规则满足下,会自动触发rdb
- 执行flushall命令,也会触发rdb
- 退出redis,也会发生快照产生rdb文件
恢复rdb文件
- 只需要将rdb文件放在redis启动目录就可以了,redis启动的时候会自动检查dump.rdb
- 查看需要存放的位置
config get dir # 如果存在dump.rdb,那么启动时会自动恢复其中的数据
AOF (Append Only File)
将所有执行的命令都记录下来。将appendonly 改为 yes就开启了AOF持久化。
如果.aof文件损坏,那么在redis启动的时候会导致无法恢复而启动失败,此时可以使用redis提供的工具redis-check-aof --fix来修复,有些数据会丢失。
优缺点:
- 每一次修改都同步,文件的完整性会更好。
- 每秒同步一次。
- 从不同步,效率是最高的。
- 相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢。
- AOF运行效率也要比rdb慢,因此Redis默认的持久机制是rdb。
《B站UP主 ---狂神说java》