温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,那下面呢,咱们来看一下这个问题啊,叫my be缓存查询的顺序,那大家感觉它应该是如果咱们开启了二级缓存,那咱们的一级缓存是不是默认开启的对不对,那这个时候如果一级缓存和二级缓存同时有效的话,那咱们应该是先查一级的还是先查二级的呢?大家想一下。首先你要知道谁的范围更大一些,谁的范围更小一些,那咱们应该是先从大范围去去找,还是先从小范围去找呢?大家想想,那如果说大家想啊,就是我们当前咱们的大范围里面,咱们的二级缓存,然后它所存储的数据是不是应该是等到我们的circle session关闭或提交之后,咱们的一级缓存中的数据是不是才会保存到二级缓存中,对不对?而且我们的二级缓存它对应的是多个circle session,而我们的一级缓存只对应一个circle session,那所以说大家想一下,如果我现在我要去查询某个数据的话,对吧,如果我们只从当前的这一个SQ session里面来查的话,是不是很有可能查不到,因为它的范围太小了,而我们如果从二级缓存去查,因为二级缓存它的范围是circle session factory的,所以说我们不单里面存储的有某一个circle。
01:23
Session,它所查询的数据是不是还有我们当前circle session factory所创建的所有的circle session,然后所查询的数据都会在关闭或提交之后保存到二级缓存中,对不对?所以说大家想想,那既然咱们当前是有范围的区别,那我们肯定是要以大范围先搜索,没有的话咱们再去小范围里面去搜索,对不对,这个大家注意啊,行,然后呢,大家看好查询的顺序是先查询二级,因为二级缓存中可能会有其他程序已经查询出来的数据可以拿来直接来使用,对不对,这个大家注意啊,好,然后再往下,如果二级缓存没有命中的话,然后再来查询几级缓存呀,一级缓存,如果一级缓存也没有命中,则查询谁数据库,那这肯定不用说,对吧,既然我们现在咱们知道了,要先查二级,再查一级,那一如果二级都没有的话,那咱们肯定就要去查询。
02:23
存数据库了,OK吧,好,再往下,这个咱们刚才说过,然后circle session没有关闭之前,我们所查询出来的数据默认是保存在咱们的一级缓存中的,而当我们的circle session关闭之后,然后咱们的一级缓存中的数据就会写入到二级缓存中,这个大家看好啊,行,那这是我们买be中缓存的一个查询的顺序,大家注意啊。
我来说两句