- 二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存。
- 基于namespace级别的缓存,一个名称空间,对应一个二级缓存。
- 工作机制:
- 一个会话查询一个数据,这个数据就会被放在当前会话的一级缓存中;
- 如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是会话关闭了,一级缓存中的数据被保存到二级缓存中;
- 新的绘画查询信息,就可以从二级缓存中获取内容;
- 不同的mapper查处的数据会放在自己对应的缓存(map)中
步骤:
config.xml中开启全局缓存,虽然默认就是开启的
1
2<!-- 显式地开启全局缓存-->
<setting name="cacheEnabled" value="true"/>在SQL映射文件中添加标签并配置参数,也可以不配置,只写一个
<cache/>
:1
2
3
4
5
6
7
8
9<cache
<!-- 清除策略FIFO -->
eviction="FIFO"
<!-- 每隔60秒刷新 -->
flushInterval="60000"
<!-- 最多可以存储结果对象或列表的 512 个引用 -->
size="512"
<!-- 返回的对象被认为是只读的 -->
readOnly="true"/>