一、是什么
以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下(“读操作”不作记录),只许追加文件但不可以改写文件(日志文件中只能追加指令内容,不能修改),Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
二、AOF持久化流程
三、AOF默认不开启
RDB默认开启,AOF默认不开启。
可以在redis.conf中配置文件名称,默认为 appendonly.aof
AOF文件的保存路径,同RDB的路径一致。
四、AOF和RDB同时开启,Redis听谁的?
AOF和RDB同时开启,系统默认取AOF的数据(数据不会存在丢失情况)
五、AOF启动/修复/恢复
- AOF的备份机制和性能虽然和RDB不同,但是备份和恢复的操作同RDB一样,都是拷贝备份文件,需要恢复时再拷贝到Redis工作目录下,启动系统即加载。
- 正常恢复
- 修改默认的
appendonly no
,改为 yes - 将有数据的aof文件复制一份保存到对应目录(查看目录:config get dir)
- 恢复:重启redis,然后重新加载
- 修改默认的
- 异常恢复
- 修改默认的appendonly no,改为 yes
- 如遇到AOF文件损坏,通过
/usr/local/bin/redis-check-aof--fix appendonly.aof
六、AOF同步频率设置
七、Rewrite压缩
八、优势
- 备份机制更稳健,丢失数据概率更低
- 可读的日志文本,通过AOF稳健,可以处理误操作。
九、劣势
- 比起RDB占用更多的磁盘空间
- 恢复备份速度要慢
- 每次读写都同步的话,有一定的性能压力
- 存在个别BUG,造成恢复不能
十、总结
10.1 用哪个好
官方推荐两个都开启
如果对数据不敏感,可以单独选用RDB。
不建议单独使用AOF,因为可能会出现bug。
如果只是做内存缓存,可以都不用。
参考资源:
标签:AOF,持久,文件,恢复,Redis,默认,RDB 来源: https://www.cnblogs.com/Kled/p/15947517.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。