栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈redis中aof的原理和实现方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈redis中aof的原理和实现方式

aof为append on file。它更类似MySQL中的sql文件,而ROB则类似于将某一时刻内存中redis的全体状态被分别存储到磁盘中。

aof会将内存中所有对数据库进行的增删改操作纪律下来,放入内存中的一个缓冲区,然后再由缓冲区保存到磁盘。等到要用的时候就把语句一条条的取出来,执行它

由于很多操作是重复的,如10 时刻设置a等于hello,20 时刻设置a等于world。那么仅需要保存world,前面的修改均不许需要关心,这就是aof文件的重写,可以减少很多文件冗余。

重写的机制其实就是把数据库的所有数据全部遍历一次,并对其进行判断,并使用append语句,使得它变为set,push等等一系列的字符串语句。无非是对数据类型进行挨个的if判断然后设置不同的新增语句。由于添加的限制,redis一次只能最多添加64条数据。超过的话会有(n/64向上取整 条)新增语句来表示

后台重写:由于重写需要花费较多时间,在这个时间内不能处理其他操作。所以有了后台重写。后台重写内父进程用于梳理其他操作,而子进程负责aof文件的重写。

在对文件进行aof持久化时需要一定的机制,有如下几种

同步即将刚刚发生的操作写入缓冲区

aof的载入操作是这样的:

会创建一个无法操作的伪客户端,他不带有任何网络连接。

这个客户端会负责执行aof文件中的命令,一直到aof文件被循环完毕。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830613.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号