MyBatis 二级缓存清理策略有哪些?

MyBatis 的二级缓存提供了几种清理策略,这些策略是通过 <cache> 标签的 eviction 属性来设置的。以下是几种可用的清理策略:

  1. LRU(Least Recently Used):最近最少使用,将最长时间未被使用的对象从缓存中清除。

  2. FIFO(First In First Out):先进先出,将最早进入缓存的对象从缓存中清除。

  3. SOFT:软引用缓存,一种基于 Java 软引用的缓存策略,只有当 JVM 内存不足时,才会清除缓存。

  4. WEAK:弱引用缓存,一种基于 Java 弱引用的缓存策略,任何时候都可能被 JVM 清除。

下面是一个使用 LRU 策略的配置示例:

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

以上就是 MyBatis 二级缓存支持的清理策略。注意,这些策略都是在缓存达到其 size 的限制时才会触发。size 属性定义了缓存可以存储的引用数量。

需要注意的是,以上的策略不能确保缓存中的数据与数据库中的数据始终保持一致。如果你的应用需要保证严格的一致性,可能需要考虑禁用二级缓存或采用其他策略,如使用可查询的数据库视图或存储过程等。

发表评论

后才能评论