一级缓存使用的结束:

   * 会话结束,会释放掉以上生成的一系列对象,缓存也就不可用了。

         * 调用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,直到有对应的数据进入缓存。

 

posted on 2020-08-18 21:44  奔跑的小一  阅读(80)  评论(0)    收藏  举报