
一级缓存使用的结束:
* 会话结束,会释放掉以上生成的一系列对象,缓存也就不可用了。
* 调用sqlSession.close方法,会释放掉PerpetualCache对象,一级缓存不可用
* 调用sqlSession.clearCache方法,会清空PerpetualCache对象中的缓存数据,该对象可用,一级缓存不可用
* 调用sqlSession的update,insert,delete方法,执行commit()方法,会清空PerpetualCache对象中的缓存数据,该对象可用,一级缓存不可用

* 在查询操作远远多于增删改操作的情况下可以使用二级缓存。因为任何增删改操作都将刷新二级缓存,对二级缓存的频繁刷新将降低系统性能。
在MyBatis的配置文件中开启二级缓存。<setting name="cacheEnabled" value="true"/>
<cache/> 标签用于声明这个namespace使用二级缓存,并且可以自定义配置。
type:cache使用的类型,默认是PerpetualCache,这在一级缓存中提到过。eviction: 定义回收的策略,常见的有FIFO,LRU。flushInterval: 配置一定时间自动刷新缓存,单位是毫秒。size: 最多缓存对象的个数。readOnly: 是否只读,若配置可读写,则需要对应的实体类能够序列化。blocking: 若缓存中找不到对应的key,是否会一直blocking,直到有对应的数据进入缓存。
浙公网安备 33010602011771号