00:00
好,那我们刚才呢,咱们也已经看到了二级缓存的功能了,对吧?然后下面呢,大家来看一下,我们刚才在设置咱们的catch启标签的时候,大家会发现这里面是不是会会会有一些属性,比如说tap呀,Blocking啊,对不对,Evi对吧?然后flash interval,还有read only,还有size,像这些属性,那这些属性都是来设置咱们的二级缓存相关的一些信息的,那它们分别表示什么意思呢?来咱们简单的了解一下啊,这个大家注意这个二级缓存的话和咱们的一级缓存啊,因为它主要就是帮助我们来缓存数据的,所以说呢,这个功能的话,大家也是简单了解就可以啊。好,那首先大家来看一下咱们的第一个属性叫做什么?叫做eviction,这个东西是干什么的?叫缓存回收策略。什么叫缓存回收啊?大家想想,那咱们的缓存,缓存的数据是缓存到哪儿的?缓存到了我们的内存中,那所以说咱们能不能无限制的往我们的内存中去缓存数据呢?那肯定是不行的,所以说我们就可以来设置咱们的缓存回收策略,来对我们当前所缓存的一些数据对吧,来进行回收。
01:16
好,大家来看,在这呢,咱们有几种方式,比如说L叫做最近最少使用原则,然后fio叫做先进先出,还有soft的,还有week,对吧,这两个都是跟我们当前的垃圾回收机制相关的,好,那Liu和fio,我给大家来介绍一下这两种啊LRU呢是最近最少使用,就比如说我们当前咱们来存储了,咱们把这某些数据进行了缓存,如果我检测到在某在指定的一段时间之内,某一个缓存的数据所使用的次数是最少的,那我们就可以将它进行移除。OK吧,好,然后还有一个叫fio这东西是什么意思啊,先进先出,什么叫先进先出,我最早缓存的数据,那我就优先把它给删除掉就可以了,就优先把它给回收掉就可以。
02:11
来为我们之后需要缓存的数据,然后来提供空间,能听懂吗?大家注意这是fio啊,那默认的话用的就是L啊,这个大家注意。然后再往下的话,然后是咱们的flash inter属性,那这个东西是什么叫刷新间隔,什么叫刷新间隔,就是我们当前咱们的买杯的缓存多长时间,二级缓存多长时间来进行刷新一次,对吧?然后单位是毫秒,如果咱们不设置的话,也就是没有刷新间隔缓存仅仅调用语句时刷新,大家说什么叫做仅仅调用语句时刷新呢?那我们现在有没有设置啊,没有设置,那大家说什么时候刷新调用语句,调用什么语句才会刷新二级缓存呢?咱们刚才是不是说过,然后手动清空缓存的话,Flash catch,呃,Clear catch,它只会清空一级缓存,而能使一级和二级同时失效的只有谁呀?只有咱们的增删改的操作,所以说大家注意,然后咱们当前呢,这个地方说的是缓存仅仅调用语句时刷新调用什么语句,增删改的语句大家注意啊,好,再往下,然后size属性引用的数目。
03:28
什么叫引用的数目,就是我们当前这个缓存最多可以来存储多少个对象,当然你不能设置的太大,你要设置的太大的话,如果把我们的内存占满了,那大家说是不是就会导致内存溢出,是不是这个大家注意啊。好,然后还有一个属性叫做read only,那什么叫read only叫只读,只读缓存和读写缓存,什么叫只读缓存呢?只读缓存就是我们当前从缓存中所获取的数据,你只能读不能写,那大家说什么情况才是只能读不能写呢?
04:07
啊,大家想想,我缓存里面所存储的这个数据,是不是应该是我上一次从数据库查询出来的,对不对,对吧?然后如果你把这个数据直接返回给我了,那大家说这个数据我能改吗?如果我要改了,我是不是就把缓存中的数据给改了,你把缓存中的数据改了,还跟我们数据库中的数据还一样吗?不一样,所以说什么叫只读缓存,就是我们当前咱们的二级缓存会把什么给返回给咱们当前的用户呢?会把我们当前啊,会给所有调用者来返回缓存对象的相同实例,什么叫相同实例?就是直接把我们当前所缓存的这个对象,然后直接给谁了,给我们当前的用户了。这个大家注意,直接给我们的调用者了,那大家说这个对象你可不敢操作啊,你要是操作了之后,你会发现,那我们当前所缓存的数据跟数据库就不一样了,那这个时候大家想想,那还那咱们的缓存还有意义吗?是不是就没有任何意义了,对不对,所以说啊。
05:16
只读缓存就是将我们当前缓存的这个数据直接返回给调用者,然后调用者呢,只能读而不能写好,然后但是大家看,那我们当前如果要设置为false的话,表示的是读写缓存,那什么叫读写缓存?读写缓存就是说我既可以对这个缓存的内容进行读,又可以将它进行写,那所以大家想想这个时候是什么?是我们当前把我们这个缓存的数据的一个拷贝对象,也就是一个复制出来的对象返回给了调用者,那这个时候大家想想,我来对它进行读或写,对咱们最原始对我们所缓存的这个数据有影响吗?
06:00
没有任何影响对不对,所以说这个就叫做读写缓存,这个大家注意啊,好,当然呢,大家都知道,那如果我直接把我们所缓存的对象,然后来进行返回的话,那咱们的速度肯定是非踌快的,而如果我当前我还要把缓存的对象进行拷贝来返回给调用者,那咱们的速度肯定是要稍微慢一些的,所以说呢,大家注意,如果你要想。提高性能,那咱们就需要用到这个只读缓存,而如果我们要来保证安全性的话,那咱们就可以用到这个读写缓存,这个大家注意啊,行,当然了,大家注意它默认的是false,也就是说我们当前咱们的缓存是读写缓存,每一次咱们所读到的缓存都是咱们所缓存的数据的拷贝对象,所以说咱们既可以读也可以写,OK吧,好啊。行,那这个是我们的二级缓存的一些相关的配置啊。
我来说两句