一、持久化概念
持久化的范围很广,从内存到硬盘这叫持久化;数据备份也叫持久化(所以mysql也是可以持久化的)
二、redis持久化分类
1、RDB:拍快照
每个时间点更新一次数据。所占有的体积比较小、恢复速度快;但是数据丢失可能会很大(默认RDB,可以手动开启AOF,一旦开启AOF便不会再去读快照文件只会读日志文件)
2、AOF:日志
趋近于实时更新(这个可配置)。所占有的体积比较大、恢复速度慢;但是数据丢失可能会很小
AOF两种模式:
- 实时更新:写一下更新一下日志。因为redis是单线程如果完全实时效率会很低,每次往内存中写数据还得往硬盘中写,然后才能处理其他请求
- 交给os:操作系统基于pagecache(页缓存)去更新,每隔5s更新和达到内存百分之十更新,这两一起工作。会丢数据但没RDB严重)
因为是日志,所以每次更新操作都会记录,但其实有用的就是最后一个记录,所以体积大、恢复速度慢。但是可以配制重写更新掉无用信息,不过这不是实时的是有触发条件的比如特别大了或者到某个时间点。到了4.x版本以后AOF得到改进,当要重写的时候,它并不会去循环遍历删除无用信息,它是直接去内存中拍快照,把快照直接放到AOF中取代原来记录(原来的直接删掉),然后新的
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153436.html