00:00
我们刚才呢,看了一下这个一级缓存,哎,我们也称为circle session级别的缓存。也就是说,哎,每一次绘画它呢,都对应它自己的一级缓存,那这样的话呢,这个一级缓存的作用范围就是比较小的。比如拿我们这个查询来说,假设我来查询一个部门。我们这个部门信息,哎部门,我们这个部门信息呢,我要查询一号部门,我第一个会话进来,我查询出了这个一号部门。那么呢,我们就会把一号部门放在第一个会话的这个一级缓存中,一旦这个会画一关掉。我第二个会话,我再进来,我还想查一号部门。那么呢,这次你抱歉,哎,你就得再去数据库进行查询了。而我们这个部门信息呢,像这些部门信息之类的,一旦保存以后也很少修改,我们希望的是呢,你之前查过的这个部门信息,那能不能我第二次再来,哎,查询的时候,我看你之前有没有查询过,也给我放在缓存中。
01:14
那么显然我们这个一级缓存的作用范围就太小了,接下来就会有我们这个叫二级缓存。二级缓存呢,它是一个全局范围的缓存。它是基于namespace。那是级别的缓存。这个name space呢,哎,对应的就是我们这些插麦文件,然后每一个插麦都有一个名称空间,比如说呢,哎,一个名称空间对应一个name,可以对应一个二级缓存。二级咱们这个诶。哎,我们就可以理解为呢,一个name对应有它自己的一个map。
02:00
但是这个二级缓存是怎么工作的呢?我们就得说一下他的工作机制。比如说首先我们得这么来想。我们先来查询一条数据,查询一条数据。查询一条数据,那么这条数据查出来,哎。一个绘画。一个会话查询一条数据,那么当前数据,这条数据,这个数据就会被。放在。咱们这当前绘画的一级缓存中,哎。只要你这个绘画没关,哎,你这个绘画再去用这条数据从一级缓存中的,但是这都跟这都跟别的绘画没什么关系。我现在呢,哎,我现在想让这个绘画查询到的这个数据,别的绘画也能用。也就是说,如果当前会话关闭了,如果会话关闭。
03:04
如果会话关闭的话呢,啊,这个会画对应的一级缓存也就没了,哎,啊,我们这个会话都关了,它里边的那些东西也就不能用了。那么呢?但是我们马贝蒂斯并没有清空如果会话关闭那么一级缓存的数据。划算中的数据。会背。会被咱们这保存到二级缓存中,比如说这样的话,你即使这个绘画关了,哎,比如我这个绘画查询了一个部门,一号部门,你即使关了我新的会话再来查询部门的时候,我们就可以参照二级缓存。绘画查询。查询信息就可以就可以,咱们这个参照二期。缓存中的内容。
04:04
好,也就是说呢,我们这个新的绘画就会用来再来参照二级缓存了。而我们再来说。要说你这个绘画一关数据就放在了我们这个二级缓存中,然而呢,如果我们这个CIRC里边。哎,既有employee。Employee。查的这些employee。他来查的employee对象。那么呢,有我们这个department,比如我们这个部门。查到咱们这个department对象。问对象,比如说呢,虽然我们二级缓存是一个全局的,但是这两个对象会被放在不同的map中,因为我们说哎二级缓存是基于name space的这个map,它的name space叫employee map,所以说呢,这个name space下查的数据都会放在哎这个下的map。
05:11
那么呢,我们第PT member查的数据就会放在它下边的这个,所以说呢,不同的。不同namespace。查出的数据会放在自己对应的。Map中。那我们也就成为自己。对应的缓存中。而缓存呢?在我们马贝蒂斯内部,它就是一个map。啊,比如说这是我们二级缓存的这个工作机制,那我们就来体会一下这个二级缓存,我们来看它怎么使用。
我来说两句