天天看点

Mybatis之缓存

一、一级缓存

Mybatis之缓存
Mybatis之缓存

二、二级缓存

1、开启缓存(默认是开启的)

Mybatis之缓存
<settings>
        <setting name="cacheEnabled" value="true"/>
  </settings>      

默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:

<cache/>      

可以自定义缓存

<cache
  eviction="FIFO"
  flushInterval="60000"
  size="512"
  readOnly="true"/>      

这个更高级的配置创建了一个 FIFO 缓存,每隔 60 秒刷新,最多可以存储结果对象或列表的 512 个引用,而且返回的对象被认为是只读的,因此对它们进行修改可能会在不同线程中的调用者产生冲突。

Mybatis之缓存
  • 只要开启了二级缓存,在同一个Mapper下就有效
  • 所有的数据都会先存放在一级缓存中
  • 只有当会话提交,或者关闭的时候,才会提交到二级缓存中

三、缓存原理

继续阅读