什么是一级缓存与二级缓存
时间: 2023-12-24 09:23:44 浏览: 27
一级缓存和二级缓存都是计算机系统中的缓存,用于提高数据访问速度。一级缓存通常是指CPU内部的缓存,而二级缓存则是指位于CPU和主存之间的缓存。
一级缓存(L1 Cache)是CPU内部的缓存,通常由SRAM(静态随机存取存储器)构成,容量较小,但速度非常快。一级缓存可以直接被CPU访问,因此访问速度非常快,但容量有限,无法存储大量数据。
二级缓存(L2 Cache)通常位于CPU和主存之间,容量比一级缓存大,但速度比一级缓存慢。二级缓存通常由DRAM(动态随机存取存储器)构成,容量可以达到几十MB甚至上百MB,但访问速度比一级缓存慢。
相关问题
Mybatis一级缓存与二级缓存的区别
Mybatis的一级缓存和二级缓存是两种不同的缓存机制。
一级缓存是Mybatis中默认开启的缓存机制,也称为本地缓存。它是指在同一个SqlSession中,执行相同的查询语句时,第一次查询的结果会被缓存到内存中,后续再执行相同的查询语句时,直接从缓存中获取结果,而不需要再去数据库查询,从而提高了查询效率。一级缓存的生命周期是和SqlSession一样长的。
二级缓存是Mybatis中的全局缓存机制,也称为共享缓存。它是指多个SqlSession共享同一个缓存区域,可以跨SqlSession使用。它的作用是在多个SqlSession之间共享数据,减少数据库的访问次数,提高系统性能。二级缓存的生命周期是和整个应用程序一样长的。
二级缓存需要手动开启,在映射文件中可以配置使用哪个缓存实现,如Ehcache、Redis等。同时需要注意,缓存的数据需要实现序列化接口,以便于存储和传输。因为一级缓存是默认开启的,所以在多表关联查询时,可能会出现数据不一致的情况,此时可以使用二级缓存来解决这个问题。
一级缓存和二级缓存的优先级是
根据引用内容,一级缓存的优先级高于二级缓存。一级缓存是SqlSession级别的缓存,也称为本地缓存,它的作用域是会话级别的,当调用SqlSession的修改、添加、删除、commit()、close()等方法时,就会清空一级缓存。而二级缓存是namespace级别的缓存,它的作用域是mapper级别的,多个SqlSession共享同一个二级缓存,当调用SqlSession的修改、添加、删除等方法时,会清空对应的mapper的二级缓存。因此,当开启了二级缓存时,查询时会先从二级缓存中查找,如果没有再从一级缓存中查找,最后才会去数据库中查询。