00:00
好,各位同学大家好,接下来我们将为大家介绍一下A的一个重点功能,那么就是A的重写机制,看一下官网。来自于这说人话就第一句话就明白了,这个A呢,随着你的写入。Gets bigger and bigger对吧?那么这样的话,如果文件越来越大膨胀了,那么我们是不是应该有一种精简计划,瘦身计划说完了,OK,意思就这么点,来一句话,讲明白以后我们来看看。我们的案例和处罚机制。由于a of的持久化是write不断的将写命令记录到a of文件当中,那么越来越大,占用的内存磁盘空间也越来越大,那么恢复起来是不是要求的时间就越来越长?因为你要把所有写操作命令重新执行一遍,我如果这个A文件里面只有十条写记录和有1万条写记录,那这个是不是执行起来的时间是不一样的?所以为了解决膨胀文件变大这个问题,Red新增了LF的重写机制。但AF文件。
01:15
大小超过所设定的峰值,就是达到了它的标准以后自动启动AF文件的内容压缩,那么注意,这句话很经典,只保留可以恢复数据的最小指令集,或者我们用手动命令,哎,它的恢复机制也分自动和手动。那么。使用BG rewrite LF来进行重写,好,我们来八兄弟们官网上给答案呢?抓过来,有兴趣可以看一下,第二个就一句话。启动L文件的内容压缩机制,瘦身减肥只保留可以恢复数据集的最小指令集,那么它的触发机制官网默认配置是这样的,分两种,自动和手动。那么咱们先看自动,第一个在这儿有a of。
02:10
Auto rewrite。Percentage意思就是达到多少,第二这个就是百分比,第二个就是多少兆,那它是要同时满足且的关系才会触发。说人话翻译过来就是根据上次重写后的AF大小,判断当前AF大小是不是增长了一倍,且重写时满足文件的大小,那么也就是说,假设超过64了,那当然是。要超过,而且要膨胀一倍以后,企业的关系自然而然会启动它的内部的重写机制。好,那么。来看一眼,自动触发它是这么一个干。满足配置文件的选项之后,我们待会儿会去做这个变更啊,Red会记录上次重写时F大小,那么说过了一倍加64兆,默认的啊,手动直接执行BG rewrite AF,就跟我们这个BG save r BD的一样好了,那么这是它的触罚机制,那接下来我们案例证明代码说话,开工首先啊,我们来看。
03:14
为什么会有这个东东?什么叫只保留可以恢复数据的最小指令集呢?比如说举个例子啊,有个K,一开始你set k1V1没问题,然后改成sat k1V2,注意K是同一个,然后再写成sat k1V3,如果没有重写机制,那么AF忠实的会记录主人你所编写的写操作命令,这个K可以是从一到100,那么这个时候我们会有100条写操作的记录,记录在我们的AF日志里面。那么陈如刚才所讲这三条语句都在F文件当中,内容占空间不说,启动的时候还要重新执行一遍一和三,那么这个是三条,如果100条,1万条呢?共计三条命令,但是对于类似这样的我们,实际效果是不是只需要set k1,最后那条V3就OK了,那么前面的我们是不是应该把它过滤掉删掉啊,对吧?这样的话是不是既保障的效果也节约了空间,达到了只保留可以恢复数据集的最小指令集,所以我们开启重写机制之后。
04:22
只需要保存sat k1V3就可以就可以了,只保留最后一次的修改值,相当于给F文件瘦身减肥性能更好,那么AF重写不仅降低了文件的占用空间,同时更小的A,那么我加载读取起来是不是更快?所以这就是我们的需求说明,那么下面代码说话叫验证,那么怎么干呢?来吧,首先啊,前期准备,再次强调。开启only LF这个功能躲不了,那么第二个刚才我们已经看到了,那么这啊,我先下的蛋啊,因为修改了配置文件,我们来重新来一次,那这个是我们刚才LF的这个路径,干脆我重新来一个吧,CD my red进到这,那么vm red7点看复来,弟兄们,Set number,那么找到我们的end only这个模块,好。
05:16
来。找吧找吧,好,同学们请看啊,他说了,指定这个百分比去。这个来搞定,那么rewrite的特性就是这些啊,那么100%不到,它默认是多少,64兆B,好,那么同学们,杨哥干一件坏事,直接就给他写了个1K,那么弟兄们。能理解了吧,其他不动1KB对吧,1024 OK,那么好了,给我签够小了吧。保存好了,那么接下来各位亲,关闭混合,关闭混合设置为no,这是什么意思呢?首先啊,这个我们绝对纯粹的给大家演示这个日志重写机制啊,因为它支持一种RDB加AF的混合,后面下一节我们会讲。那么这为了。
06:08
不让大家受到干扰,我把这个选项设置为no,那么大家请看,就是A的use r DB pre。默认的yes改为no啊,再来修改一下。我找一下啊,好像是在下边吧。好,那么这个时候大家请看啊,默认的这个是不是我们的yes,我呢直接呢把它呢修改为no,好,这个呢。打开啊。好了。来了,搞定,那么弟兄们都清楚了,那么删除之前的全部LF和RDB,清除干扰线,好吧,那么我们刚才瞎干了一下啊,然后呢,可能会有一些干扰项,那么来吧。我们在这啊嗯,直接先删除R-RF637球,然后呢,干脆啊啊RM-RF当前下面的全部上的干干净净,啥都没了,同意吧,就是一个AF的文件夹,妥了,来吧,同学们。
07:21
先演示自动触发,那么它的条件啊,就是完成上述配置以后,重启red服务器,执行set k v,查看AF文件是否正常,意思就是说我现在是已经什么删的干干净净,一贫如洗,一扫而空,那我重新来了以后,是不是应该重新在这个里面生成三个新的配置文件,OK,好,我重来了啊,那么来吧,兄弟们,启动连进来kiss新现在啥也没有吧,那么现在啊,来给我签零零对吧,这是最干净的状态。听懂了吧?好,那么接下来兄弟们再开一。
08:01
然后呢,我们首先啊,先来看这看启动成功以后,在这个下面零零什么的都有了吧,啊我们来一个最经典的set k1,那么假设我就写一个一,OK,那么GET1没问题吧,就是个一。好了,在这个路径下面,同学们请看是不是51。占了一点字,结束了吧,好了,那么接下来查看三大配置文件,复习这个配置项啊,那么这个说过了,那么再来本次的操作,我们呢,就会明白了,我们SK1也好,V2也好,反正一句话,我们现在呢。完完整整给大家演示啊来。怎么样,是不是零号库,然后sat k是一个一没问题吧?弟兄们,来,接下来开始杨哥的表演喽,你不是要自动的重写吗?那么为什么我现在要特别强调当前的这些内容呢?你说杨哥我懂了,这个不就是这三个文件吗?啰嗦那么多遍,再啰嗦一次啊,看着。
09:09
几一,那如果重写以后,同学你们觉得这个名字会不会发生变化呢?好了,下面看着啊,一定的来,那么sat开还是同一个一。回答我没问题吧,那么来看着啊。现在是51。多少是不是240了,那么慢慢的接近1024以后,111的话,是不是会达到我们的1KB这么大小,那它是不是应该会产生重写机制啊,那么来吧,同学们请看请看请看请看,好了,我们来怎么着才500多,好吧,那么来吧,我一不错二不修,我再多写一点,好,我们看看现在是多少啊,我主要是给大家想看那个效果,我尽量不让他抄编好,那么这儿不妨来看一下啊。
10:02
1.in,虽然说还没到,同学们请看。这个下面是不是记录了很多1111,那么这样如果每次要重写一遍,是不是非常大好,那么来了耗时的事一一好再来看啊。慢慢的啊,967了,快要接近了,那么同学们请看啊,我再来一次啊,又加了一组。怎么着,是不是同一线变成几二。OK,这是第一个,请看啊,之前的贝是0INQUIRY不停的记录的这个写操作的是967,然后many fast清单文件是88,结果终于达到了我们所设置的。写的越来越多,文件膨胀了一倍,且内容超过了1KB,那么967是不是要接近要要接近1024了,那么这个时候达到了1KB,重新记录第二份多少是零了,听到就全新的一个记录文件了,那么这样是不是达到了一个瘦身清洁计划,然后manifest老神在在稳如老狗没动,但是突然发现我们的贝。
11:20
从一变成了二,这个变成126,那么大家来想一想,它会有什么不一样的第一方呢?同学们说人话,就是把之前哈你所看到的那么多1111只保留了最小的结果集,同学们请看这个文件,Sat nu,同学们请看只有几行,12行由你刚才执行的那么多同一个K这么多重复的内容,他自己开启了瘦身计划,我只记录下来,最后反正你最后也是恢复成这样,那么所以我就给你做了瘦身计划,这么说兄弟们O不OK。
12:04
明白了吧,所以这三个文件它是会有一个东西叫基本文件,增量文件和清单文件,那么从这我们K1不停的爆炸,对于同一个K1不停的重复,1111,文件慢慢变大,到达最后的峰值以后,启动了自我的什么重写机制给同学们验证,通过触发重写以后。从一号。极限文件变成了二号增量文件只保留最后一次的值,那么这个就是我们的什么自动a of重写机制,听懂好,那么第二个这是什么手动触发,那么BG rewrite这个呢,就很简单了,那么来同学们请看一眼啊,现在是到几到二好,那么同学们请看啊,那么SK2,那么假设V22OK,好。没超过吧,现在极限还是二,但是对不起,我现在想给你一刀两断做一个清盘,那么BG rewrite af1执行,马上说后台就会AF这个文件rewrite就启动了,那么同学们,你们人为会有什么不一样的地方,大家看这个时候是不是第二还没到达我们的条件呢?对不起,不需要你自动触发人工干预,马上机械往上加,干成了第三号文件听懂,所以弟兄们,这个就是每次执行BGL迅速的就写进我们的A文件里面。
13:34
不纠结,做一个了断。一刀两段,OK,好,那么文件就从二号基线增到了三号基线,那么最终我们得到的结论就是A文件的重写并不是对原文件进行重新整理,而是直接读取服务器现有的键值对数据,然后又一条命令去代替之前记录这个键值的多条重复命令,生成一个新的文件后去替换原来旧的,那么它的重写触发机制配置文件通过这个默认值是一倍就是100%。
14:06
Percent嘛,百分之几,然后大小是64兆B触发,那么也就是说默认的A会记录上重写时的A大小,八配置文件的大小是上一次re后的大小的一倍,且大于64兆B的时候自动触发,OK,那当然杨哥这是为了讲课给大家演示呢,是64兆B改成1KB,你实际工作中如果你希望更大一点,你可以把它改成128兆B。或者512照BOK,差不多了,好,那么这个就是我们AF重写机制的全部案例说明,那么它的重写原理呢?也就是刚才的全部过程,给大家总结了一下,就这五点,第一个在重写开始前,会创建一个重写的紫禁城,这个紫禁城会读取现有的F文件,并将其指令进行分析压缩,写入到一个临时文件。O第二个,那么主进程呢,将会接触到写指令,一边累积到内存缓存中,一边继续写入到原有的AO文件。
15:06
这样就保证原有的AF文件可用性,避免在重写过程中出现意外。相当于有明暗两条线,第一个你正常的接收数据,第二个要准备重写,那么当重写子线程完成了这个重写工作之后,告诉老爸发个信号,收到以后就会将内存中的缓存写指令逐一加到这个if文件。当追加结束之后,RA就会用新的A文件来替换旧的,之后再有新的写指令就会都会统一的追加到这个新的AF文件当中,那么重写AF文件的操作并没有读取旧的A文件,而是将整个内存中的数据库的内容用命令的方式重写了一个全新的AF文件。我们刚刚看到是不是同一二三不停的会有一个新的增量文件,这点就跟快照有点类似,OK,好,那么各位亲。A的重写机制啊,就给大家介绍到这儿。
我来说两句