一级缓存
一级缓存是sqlsession级别的缓存,(默认开启),也称本地缓存,在sqlsession开启到关闭之间有效,使用同一条查询语句是有缓存的,也就是只查一次sql,其他的走缓存,但如果中间有增删改操作、被LRU算法淘汰掉的时候、手动清理缓存(clearCache()方法)都会造成缓存失效。
二级缓存
二级缓存也叫做全局缓存,他是基于namespace级别的缓存,在一个mapper.xml生效
如果会话关闭或者提交了,一级缓存就会保存到二级缓存中
不同的mapper对应着对应的不同的缓存
![在这里插入图片描述](https://img-blog.csdnimg.cn/163d70e1ff5c4e7a8f06259521108f25.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q2j5Zyo5a2m5Lmg57yW56iL55qE5bCP5a2m55Sf,size_14,color_FFFFFF,t_70,g_se,x_16)
缓存顺序
先去查询二级缓存,再去查一级缓存,最后去查数据库