00:00
好。我们刚才呢,测试了一下这个二级缓存,那么这个二级缓存呢,我们也发现,只要第一次绘画查出的这个数据会画一关,这查出的数据都会被放在当前member的这个二级缓存中,只要你是调用啊,我们还是department member来进行部门查询。那么之前查的数据我们就不会再去发C了,而是直接从二级缓存中拿,哎,一个更大范围的缓存,不像一级缓存,SESSION1关啥都没了。那么呢,我们这个二级缓存要用之前呢,得经过这么一些配置,首先你全局得开启缓存,Map中得配置使用缓存才行。那么呢,我们就来看一下跟缓存有关的这些设置和属性。和缓存有关的。设置以及一些属性,我们来看一下他们。第一个呢,就是我们配置的,哎,这个。
01:02
Catchable这个全局配置。它控制的处呢,就是这个处啊,开启缓存,那么如果我们写为false,那就是关闭缓存。那么它关闭的是一级还是二级呢?我们得有待研究好,我们来看一下。来到全局配置中,我把这个置为FOX。来测试一下它关的是一级缓存还是二级缓存。好,首先来到咱们这个部门查询,那么呢,咱们第一个绘画一关,第二个绘画要查二级缓存,如果被关闭,那么呢。来,走。诶被关闭的话,他就会发新的色扣,我们看到现象也是都是一号部门,但是呢,发了两次色扣语句,之前呢,我们使用二级缓存的情况是第二次查询直接catch hit从二级缓存中拿,不会发新的S语句。
02:02
而他这次给发了,所以说呢,这个关闭缓存,首先它会关闭二期。这二级缓存一定是关闭了。关闭。那我们这个一级缓存关闭了没有呢。我们就来测试一下。好,来到我们测试一级缓存的方法里边。一级缓存,好,这有一级缓存测试,那么这个member呢,都是一次会话,我们先拿employee礼仪。然后呢,我们还第二次拿到,还是一号员工,我们在这儿测试。走。诶,我们看看到是什么效果呢?哎,我们之前查的数据,第二次要查还是直接从一级缓存中拿,所以说这个它并没有关掉一级缓存。一级缓存一直可用的。一级缓存一直可用的。
03:02
这是第一个置。也就是说呢,为什么我们能用缓存在每一个map查询的时候,我们来假设以employee为例。GET8ID,我们找到他按照员工查询方法,然当前环境是码SQL啊,他呢会用这个SQ语句。在每一个查询标签都会有一个属性叫use catch a。这个u can呢,翻译过来就是使用缓存。每个。Select标签。都有咱们这use属性使用缓存的意思呢,它到底是使用一级还是使用二级,如果我们关关闭缓存的。啊,每一个它默认都是出,我们现在看到的情况就是一级二级它都会使用,但是如果一关,它关闭的是一级缓存还是二级缓存,哎,他们应该不是关,是不使用缓。
04:12
它不使用的是一级缓存还是二级缓存。我把这个呢查询好,我现在置为false。这我们来到测试类里边,我们先来到测试一级缓存的这个方法。走。我们来看诶一级缓存它仍然是可用的,所以说这个不使用它暂时没有影响一级缓存。缓存依然。使用。那我们来看一下二级缓存,来到我们这个二级缓存的测试方法好,还是测试我们这个查员工啊,查员工,查一号员工,我们来看。如果二级缓存啊没有使用的话,那么这两次查询就会发新的circle,如果使用了第二次的这个一号员工,哎,直接catch hit raal会从缓存中命中。
05:09
来测试走。诶,我们看效果,看到效果呢,都是一号员工是发了两个蛇口啊,哎,两个circle口啊,但是呢,如果你把它改为出,那么呢,它自然。就只会发一个走。哎。那这一块哦,我们把这个全局的是不是给禁掉了。好,把这个处啊开启,我们来看一下影响没有影响二级缓存。走。哎,它呢,只会发一个色扣,而我们如果把它置为false。我们看到的情况就是找。诶,它会发两个circle,所以说呢,Use catch,它一直啊对一级缓存没有影响,一直是使用一级缓存的,而我们这个二级缓存。
06:03
缓。不是。老师说呢,一旦你置为false,就是这种效果。我们接下来再来看一个调整方式。在我们测试一级缓存的时候,哎,我们发现只要执行一次增删改能缓存,哎。第二次查询就会发送新的色,那究其原因呢,是因为咱每一个增删改标签我们可以来看啊。哎,我们测试了一个添加,好,这有一个添加,员工添加。每一个增删改标签上都有一个属性叫flash catch to,诶啥意思啊,是不是清空缓存啊,所以说呢啊,我们这个每个增三个标签。标签的,咱们这flash都是默认是处,意思就是呢,增删改执行完以后就会清除缓存。
07:02
后就会。清除缓存,所以说我们增删改一执行以后,哎,我们缓存里边就会清掉,清掉以后哎,你再来查,自然就会发送新的circle,而我们之前的测试结果,测试结果是。Flash catch,一旦E等于true以后,诶我们这个一级缓存。就清空了,我们就会发新的社会。那接下来看它对二级缓存有没有影响,好啊。我们呢,在二级缓存的这个这里边儿,我们来进行测试,好,我们在第二次查询之前,我们执行一次,呃,增删改啊,这个部门还没增删改,我们就拿employee测试。第二次查employee之前,我们再来添加一个员工。好拿。二。
08:00
第二,我们来添加一个n employ对象,又一个n employ。好ID我们不用给。咱们这个呢,AAA。Email BB,好嗯嗯嗯,好零,我们来添加一个员工。我们来测试。好,我先把这个添加员工注掉,我们现在看到的现象呢,也就是说呢,第二次查询会使用二级缓存。哎。来看一下啊。我们把这个u catch是不是给刚才作为false了,好把它整成出啊,让它还使用缓存,我们来测试第二次查询。早他会使用缓存没问题。如果我在两次查询的时候。好,我查之前我掉了一次增删感,我们再来测试。第二次查询还使用二级缓存吗?走。好看现象。这是我们第一次打印的这个employee,发了一次查询,然后我们增删改啊,执行完了,第二次查询,它是看hit racial还从二级缓存中拿了,但是。
09:12
二级缓存里边已经没数据了,我们一清两级缓存全部清掉,所以说它会发送新的SQ,他虽然是查了,哎,虽然是查了,但是二级缓存里边这个数据已经被清掉了,所以说呢,我们来注意一下。诶,这个flash catch一级缓存二级缓存都会提供。也会被咱们这个清除,所以说呢,这是咱们第二个和缓存有关的设置。来这是第三个,接下来我们看第四个跟缓存。那么这个第四个设置之前呢,我们也可以来看一下这个flash catch,其实呢,在每一个。查询标签里边也有,但是呢,在查询标签中它默认是false。
10:05
也就是说呢,查询它是不清缓存的啊,所以说我们来看到第二次查询,诶,它会从二期缓存中拿到,如果呢,你直接给查询标签flash catch都处了一下。那这样的话呢,每次查询它都会清缓存,所以说呢,一级缓存二级缓存,我们一旦给查询标签一设置,它查询就不会再使用缓存了,一级二级都不会再使用了。好,我们看,诶,比如说呢,这样的话呢,查询就会发新的S,就是说呢,因为查询标签里边。好查询。标签。增删改油,咱们这个查询也有查询标签。他默认flash catch是first。如果我们改为处。
11:01
Flash catch我们作为出,也就是说呢,每次查完就会清缓存,哎,每次查询。每次。每次查询之前都会咱们这个清空。缓存,所以说呢,我们这个缓存是,哎没有被使用的。好。这就是我们这个二级缓存,诶,它应该是每次查询之后,哎,他都会呢,把这个缓存清完,我们这个缓存呢,就不会再有了,一级二级都停,我们接下来再来看跟缓存有关的一个设置。好。我们呢,当时调了一个session的看尺方法。这个看呢,我们当时测试的时候,一旦一清除,我们一级缓存就没有数据了,那么它会不会影响我们二级缓存呢?大家猜一猜。
12:02
嗯,这个一定是我们来看啊。我OPEN32,我们查询之前我调用一个可利尔,这个会有影响吗?我们来看一下。走。诶,你看我们这个部门开发,呃,开发部还是从二级缓存中拿的,所以说这个可怜看是,你看他都是拿open session方法调用的,Open session对象调的。所以说呢,它只是清除我们当前session的一级缓存。的一级缓存。比如说呢,跟我们这个二级缓存是没关系的,哎,大家注意。只是每次呢,我们把第三种情况啊,特别注意一下就行了,因为每次增删改以后,缓存一级二级都会清空。哎,这个大家注意一下就行了,都会清楚好,那么呢,最后我们再来说和缓存有关的一个配置。
13:08
在我们官方文档里边。好,我们这个my beat官方文档。官方文档呢,往下翻,它有一个和缓存有关的配置。诶叫local catch scope,诶翻译过来呢啊,Local不是local local本地缓存作用于。你看啊,既然都叫本地缓存了,所以说它是影响一级缓存的。这个呢,在马蒂斯新的版本啊,3.3以后有这个设置,这个设置呢,它有两种取值,Session和statement。默认呢,哎,你看by default默认是session。Session呢,就是当前绘画,哎,也就是我们session级别当前绘画的。的所有数据。
14:01
保存在。在咱们这个画画算中。绘画。缓存中,比如说当前绘画能用,另外呢,如果你一旦取值STEM了,那相当于当前绘画就没有什么缓存了,诶,No data,哎,也就是说你取值为statement的时候啊,没有数据将会被在当前绘画里边进行共享,哎,同样的绘画里边不同的方法,没有数据会来进行共享,所以说呢,我们一般也相当于这个statement可以禁用掉一级缓存。禁用禁用掉咱们这个禁,禁用这一句话。嗯,但是呢,我们一般呢,也没人去配置它好,这就是和缓存有关的这些属性设置,大家呢,做一个了解内容,着重的就是第三处。
15:04
大家需要知道,每一个增删改完成以后,一二级缓存全部清空是因为这个flash catch是出,哎,这一块呢,大家注意一下就行了。
我来说两句