1.RDB
定义:存储的数据生成快照并持久化磁盘中
优点:
定时刷盘,如果服务重启会出现丢数据的可能
持久化的过程中,主进程不会有io操作
对数据恢复的完整性不敏感的话,大规模数据恢复更高效
缺点:
重启会出现丢数据的可能
2.AOF
定义:将执行过的指令重新执行一遍,实现数据恢复(数据恢复完整度更高)
优点:
AOF方式是将执行过的写指令记录下来,在数据恢复时按照从前到后的顺序再将指令都执行一遍
默认的AOF持久化策略是每秒钟fsync一次(fsync是指把缓存中的写指令记录到磁盘中)
遇到磁盘空间满、inode满或断电等情况导致日志写入不完整,官方提供redis-check-aof进行修复。
redis提供了AOF文件重写(rewrite)机制,用于压缩AOF文件
缺点:
AOF文件较大,恢复速度慢
修复出错文件方法:
通常方式是两种方式同时使用。Redis重启优先选择AOF的方式进行恢复。
需要定时持久化。
主要还是io问题。
方法:
AOF,将redis配置文件增加一行
appendonly yes