详解Mybatis的二级缓存配置
发布时间 - 2026-01-11 01:04:45 点击率:次一个项目中肯定会存在很多共用的查询数据,对于这一部分的数据,没必要

每一个用户访问时都去查询数据库,因此配置二级缓存将是非常必要的。
Mybatis的二级缓存配置相当容易,要开启二级缓存,只需要在你的Mapper
映射文件中添加一行:
<cache />
它将采用默认的行为进行缓存:
映射文件中所有的select语句将被缓存
映射文件中所有的insert、update和delete语句将刷新缓存
缓存将使用LRU(Least Recently Used)最近最少使用策略算法来回收
刷新间隔(no Flush Interval,没有刷新间隔),缓存不会以任何时间顺序来刷新
缓存会存储列表集合和对象(无论查询方法返回什么)的1024个引用
缓存会被视为read/write(可读/可写)的缓存,意味着对象检索不是- 共享的,而且可以安全的被调用者修改,而不干扰其他调用者或者线程所做的潜在修改
所有这些属性都可以通过缓存元素的属性来修改,比如:
<!--1小时缓存--> <cache eviction="LRU" flushInterval="3600000" size="512" readOnly="true"/>
这个更高级的配置创建了一个FIFO缓存,并每隔3个小时刷新缓存,储存结
果对象或列表的512个引用,而且返回的对象被认为是只读的,因此在不同线程中的调用者之间修改他们会导致冲突。
可用的收回策略有:
【默认】LRU——最近最少使用的:移除最长时间不被使用的对象
FIFO——先进先出的:按对象进入缓存的顺序来移除他们
SOFT——软引用:移除基于垃圾回收器状态和软引用规则的对象
WEAK——弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
flushInterval(刷新间隔)可以被设置为任意的正整数(60*60*1000这种形式是不允许的),而且它们代表一个合理的毫秒形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。
size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024.
readOnly(只读)属性可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例,因此这些对象不能被修改,这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过发序列化)。这会慢一些,但是安全,因此默认是false。
配置完表示该mapper映射文件中,所有的select语句都将被缓存,所有的insert、update和delete语句都将刷新缓存。但是实际中,我们并是希望这样,有些select不想被缓存时,可以添加select的属性useCache=“false”;有些insert、update和delete不想让他刷新缓存时,添加属性flushCache=”false ”。
以上所述是小编给大家介绍的Mybatis的二级缓存配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# mybatis
# 二级缓存配置
# 二级缓存
# 深入理解MyBatis中的一级缓存与二级缓存
# 深入理解Mybatis二级缓存
# MyBatis关于二级缓存问题
# mybatis二级缓存的实现代码
# Mybatis如何通过注解开启使用二级缓存
# MyBatis中一级缓存和二级缓存的区别
# 在分布式环境下正确使用MyBatis二级缓存的最佳实践
# 移除
# 设置为
# 调用者
# 将被
# 小编
# 这一
# 运行环境
# 让他
# 正整数
# 在此
# 只需
# 和你
# 要在
# 而不
# 可以通过
# 将是
# 给大家
# 很重要
# 都将
# 所做
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
中山网站制作网页,中山新生登记系统登记流程?
如何彻底卸载建站之星软件?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
西安专业网站制作公司有哪些,陕西省建行官方网站?
Python文件流缓冲机制_IO性能解析【教程】
详解vue.js组件化开发实践
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
如何快速登录WAP自助建站平台?
iOS中将个别页面强制横屏其他页面竖屏
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
JS碰撞运动实现方法详解
使用C语言编写圣诞表白程序
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Laravel如何记录自定义日志?(Log频道配置)
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何在云指建站中生成FTP站点?
如何快速搭建安全的FTP站点?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何用5美元大硬盘VPS安全高效搭建个人网站?
实例解析Array和String方法
如何在建站主机中优化服务器配置?
,交易猫的商品怎么发布到网站上去?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何实现建站之星域名转发设置?
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel如何优化应用性能?(缓存和优化命令)
Android使用GridView实现日历的简单功能
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何配置任务调度?(Cron Job示例)
如何确保FTP站点访问权限与数据传输安全?
如何挑选优质建站一级代理提升网站排名?
深圳网站制作的公司有哪些,dido官方网站?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
node.js报错:Cannot find module 'ejs'的解决办法
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何快速搭建支持数据库操作的智能建站平台?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
南京网站制作费用,南京远驱官方网站?
新三国志曹操传主线渭水交兵攻略

