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

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算法比较适合那些内存敏感的场景,可以根据内存压力动态调整缓存大小

三、需要注意:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容