Mybatis 缓存策略
听极客学院笔记
使用mybatis的缓存需要以下三步
一、在mybatis的config.xml中开启缓存
<settings>
<setting name="cacheEnabled" value="true" />
</settings>
二、在Mapper头中指定使用缓存
<cache readOnly="false" size="500" flushInterval="120000" eviction="LRU"></cache>
readOnly为true则所有相同的SQL语句返回同一个对象,有助于提高性能,但并发操作同一数据时可能不安全,如果设置为false则相同sql访问的是cache的clone副本。
size缓存多少个对象,默认值1024。
flushInterval缓存过期时间,单位是毫秒(1s=1000ms),默认为空,只要容量够则永不过期。
eviction是缓存的淘汰算法,可选值有"LRU"、"FIFO"、"SOFT"、"WEAK",缺省值是LRU
LRU最近最少使用,移除最长时间不被使用的对象。
FIFO先进先出。
SOFT软引用,基于垃圾回收器状态和软引用规则来移除对象。
WEAK弱引用,基于垃圾回收器状态和弱引用规则
三、在具体的SQL处指定使用缓存,默认开启
<select id="getRowCount" resultType="int" useCache="true">
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述