美文网首页
2023.03.24 MyBatis二级缓存的好处和开启方法

2023.03.24 MyBatis二级缓存的好处和开启方法

作者: 薛定谔的猴子 | 来源:发表于2023-03-23 10:16 被阅读0次

MyBatis的二级缓存可以提高应用程序的性能,因为它可以避免频繁地从数据库中读取数据。在开启二级缓存后,查询结果首先会被缓存在内存中,以便下次查询时直接从缓存中获取数据。

一、开启MyBatis的二级缓存具体步骤如下:
  1. 在配置文件中的MyBatis项目添加以下代码:
mybatis:
  configuration:
    cache-enabled: true
  1. 在Mapper文件中添加以下代码:
@CacheNamespace(eviction= LruCache.class,flushInterval = 60000, size = 512, readWrite = true)

3.在XML文件中添加以下代码

<cache-ref namespace="com.ruoyi.system.mapper.TAppUserMapper"/>

其中,eviction 属性指定了缓存的回收策略,flushInterval 属性指定了缓存的刷新时间间隔,size 属性指定了缓存的最大容量大小,readOnly 属性指定了缓存是否只读。

二、MyBatis内置的二级缓存可以使用不同的算法来回收缓存对象,主要有以下几种:
  • LRU - 最近最少使用,移除最长时间不被使用的对象,这是默认的算法
  • FIFO - 先进先出,按照缓存进入的顺序来移除它们
  • SOFT - 软引用,移除基于垃圾回收器状态和软引用规则的对象
  • WEAK - 弱引用,更积极地移除基于垃圾收集器和弱引用规则的对象
    这些算法各有优势和劣势,具体取决于缓存的大小、访问频率、内存情况等因素。一般来说:

LRU算法比较适合那些访问热点数据较多的场景,可以保证最常用的数据不被淘汰
FIFO算法比较简单,但是可能会导致一些刚刚进入缓存就被淘汰的情况
SOFT和WEAK算法比较适合那些内存敏感的场景,可以根据内存压力动态调整缓存大小

三、需要注意:

开启二级缓存并不是适用于所有情况的,因为缓存也有一些限制和副作用。例如,如果应用程序中的数据经常发生变化,则使用缓存可能会导致数据不一致或过期。此外,对于复杂查询或具有多表连接的查询,缓存的效果可能不佳。

相关文章

网友评论

      本文标题:2023.03.24 MyBatis二级缓存的好处和开启方法

      本文链接:https://www.haomeiwen.com/subject/uokirdtx.html