00:00
接下来进行实战,为我们的博客分类,加上缓存。在我们完成博客分类的这个。全局的辅助函数之后啊,你看我们每次都会去查询那个数据库,但是我们现在分类的数量比较少,只有五六条,但如果你的分类有几百条呢,你每次查询数据库的啊,这个时间是不是会比较久一些,但是我们使用分类的地方有很多,比如说首页的这个导航啊,啊这个。一个博客的详情啊,或者是这个发布博客的时候,编辑博客的时候,会大量的去用到这个分类,这个数据,所以说啊,每次如果都查数据库的话,数据库的性能就会。遭受到一个考验啊,数据库的压力就比较大。所以我们有必要对它进行一个。缓存。那怎么缓存呢,有几种方式啊,比如说呃。方式一。这里这个原始的代码我先放下面先不管啊。
01:03
方式一啊,方式一什么呢?检查啊K存不存在。决定要不要查询决定。要不要查询和缓存好。方式一呢,其实呃,我们不检查也行,因为我们直接去获取的话也可以。对不对。比如说等于T啊,这里我用辅助函数啊。我直接去获取我的这个,我用我就用它作为这个缓存的K啊,直接获取它好,如果他是空的话。那说明我们缓存里面没有数据是不是,那如果它是空,我是不是要进行一个查询。啊,查询数据库,并且写入缓存对吧。写入缓存。
02:00
Catch。啊,比上这个什么呢,K是我们的这个K。Value就是数据库查出来的这个结果啊,虽然它结果是一个集合,我们在学缓存的时候已经说过,我们存储一个复杂对象的话,比如说集合对象数组,它是不是会先进行一个串行化。对不对,我们取过来,取出来用的时候再给我们进行一个反差异化,是这样的吗。啊,这样的话。啊,我们就返回就可以了,这是方式一啊,直接去获取缓存中里面的这个K,你看如果K为空,也就说为no,没有取到这个对应的这个值,怎么查询数据库,写入缓存。对吧,以后缓存里面不就有了吗?除非你手动清除了缓存。为什么没有给过期时间呢?因为像这种。啊,分类数据的话呢,一般你也不是经常的变动,而且用的地方就比较多,所以不去设置卫生间也可以。好吧,这是方式一。那我们去验证一下效果,看好使不好使。呃,我们是在添加博客里面是用到了这个分离数据。
03:05
啊,需要登录啊。是不是好使的一样的对吧。啊,这是。第一遍,第一遍肯定没有缓存的,所以他走到这里面,并且存了缓存对不对,好以后就直接是访问的缓存,那怎么验证呢?比如说我们在这里面DB。啊,你滴滴这个一,你看看这个滴滴他走不走。是不是没有走这里面对吧,没有走这个DD吧。说明根本就没进到里面,也就是说这里面直接取到数据直接返回了。清楚了吧,那我们看一看,既然不走这里面。看看我们缓存取出来这个数据和我们之前直接查出来的一不一致好不好,这里我还给它阻断掉。刷新。嗯。这里你还不太好滴滴。你这是模页面中使用的。
04:06
我在T里面去测试啊。把之前的代码都删掉先。我在这里面去测试啊。测试我们的辅助函数。可以看到是不是和我们之前存积算是一样的,对吧,而且没有走这个里面没有走这个一啊,就说明我们有缓存。但是一旦我们把缓存给销毁掉呢,比如说。啊。我这里把缓存给销毁掉。在他之前啊,销毁掉。CE。诶,我什么参数都不传,它返回的是一个啊,开启的一个factory的一个实例嘛,所以我这里可以直接使用forget的方法啊。以往一个可。
05:06
移往这个K好,这样的话把缓存消毁掉,那么说明他就取不出来,他只能会做里面查询是吧,看一看。是不是这样的?这个就删掉啊。这是方式一。方式二接着看一下方式,那方式一我就注释掉了。代码比较多啊,方式二的话是比较好的。使用这个。Remember。像这个啊。因为我们在学这个remember的时候,说他他会先去取,取不到的话就会进入进行B包里面的一些啊,我们的业务逻辑,最后拿到这个数据之后会进行一个缓存,所以这里使用开启。
06:03
不长参数让它返回。啊,这个开启的一个发实例,这样的话就可以使用remember方法清楚了吧?啊,当然你如果非要去啊,使用这个开启的这个门面也是可以的。看戏直接使用它的方法也是可以的。好,这里我使用。辅助函数去写。Remember。啊,Forever也行啊,Remember forever也行,因为本来我们就不设置这个过期时间,让它永久存储就可以了吧,是不是,然后去。这个东西。啊,第二个参数是一个B包。哎,在这里面我们进行这个查询啊,进行这个数据库的查询,就是我们数据格式的一个处理。你注意啊,最后一定要把这个你处理好的数据给return出去,出去就在B包里面return出去,这个时候就可以被他给使用了啊,被他给使用。
07:03
当然你啊,这么做这么一个查询的话。你不写这个赋值也可以,直接他也可以啊。呃,那它呢,这个它执行的话,它是有一个返回值的,所以我们要用一个这个变量去接收它的返回值嘛,它的这个返回值就是啊,要么是从缓存中里面去取得这个缓存,要么是啊使用的这里面查询出来一个结果,一般第一次的话它会查一次,除非当你缓存失效,它才会再次的去查,否则的话,我们这里用的formm缓存里就会一直有就。一直从缓存里面去拿这个数据吗?来看一下。因为这里直接调用了,没有进行输出啊,没有进行打印,在这里滴滴一下。
08:01
是不是一样的,对吧,哪怕你把缓存给销毁,它也会啊重新去。啊,执行里面的代码去查询相应的数据,并且啊渠道的数据呢,让他去使用,同时会进行一下缓存。清楚了吗?这是我们优化后的一个代码,好把我们的测试代码给删掉。去我们的博客添加里面去正式的去看一下。是正常使用的。这个关于啊,这个缓存的一个应用就先说到这里,当然它应用场景还有很多,包括缓存应用技巧,就随着我们的深入的学习和包括对缓存的使用的。啊,不断的一个总结。去慢慢啊,去提升自己的这个缓存的一个应用的一个能力。
我来说两句