MyBatis 二级缓存清理策略有哪些?
MyBatis 的二级缓存提供了几种清理策略,这些策略是通过 <cache>
标签的 eviction
属性来设置的。以下是几种可用的清理策略:
- LRU(Least Recently Used):最近最少使用,将最长时间未被使用的对象从缓存中清除。
-
FIFO(First In First Out):先进先出,将最早进入缓存的对象从缓存中清除。
-
SOFT:软引用缓存,一种基于 Java 软引用的缓存策略,只有当 JVM 内存不足时,才会清除缓存。
-
WEAK:弱引用缓存,一种基于 Java 弱引用的缓存策略,任何时候都可能被 JVM 清除。
下面是一个使用 LRU 策略的配置示例:
<cache eviction="LRU" flushInterval="60000" size="512" readOnly="true"/>
以上就是 MyBatis 二级缓存支持的清理策略。注意,这些策略都是在缓存达到其 size
的限制时才会触发。size
属性定义了缓存可以存储的引用数量。
需要注意的是,以上的策略不能确保缓存中的数据与数据库中的数据始终保持一致。如果你的应用需要保证严格的一致性,可能需要考虑禁用二级缓存或采用其他策略,如使用可查询的数据库视图或存储过程等。