目录
一、序言1、前置条件2、目标与收获二、原理分析1、二级缓存2、缓存数据更新3、缓存的区别三、本地二级缓存1、两套API2、缓存实现类型一、序言
本文承接[Mybatis缓存体系探究],提供基于MybatisPlus技术可用于生产环境下的二级缓存解决方案。
1、前置条件
掌握MyBatis二级缓存的原理
有关MyBatis缓存原理内容,参考[Mybatis缓存体系探究]
选择符合条件的MybatisPlus版本
本方案对MybatisPlus版本有严格的限制,使用版本不低于3.4.3.4,如果低于此版本,则无法满足生产环境条件下的闭环需求。
正确处理连接(多表)查询
正确的多表连接查询,请参考[MybatisPlus连接查询解决方案]
2、目标与收获
如果应用有分布式缓存需求,那么直接弃用二级缓存的方案,直接选配业务层缓存方案。
假如应用没有分布式场景,那么通过简单改造,引入二级缓存,能够极大提高响应效率。
二、原理分析
1、二级缓存
选用MybatisPlus来实现二级缓存最大的考量是其使用的单表操作,换而言之,正确的使用二级缓存的前提是不能使用传统意义上的多表连接操作,否则一定存在缓存数据不能实时更新的情况。
2、缓存数据更新
所有的缓存数据必然涉及到数据更新,二级缓存同样需要主动更新数据。二级缓存是以命名空间为单位的,换而言之同一个命名空间内的数据更新会自动触发缓存更新(本质为数据失效)。查询操作缓存数据,增加、修改、删除数据使缓存失效。
自成体系的缓存更新与管理在提高了应用响应速度的同时降低了缓存管理的复杂度,有利于提高开发效率。
3、缓存的区别
这里提到的二级缓存有必要与三级缓存(业务缓存)做区分,二级缓存指DAO层缓存,使用缓存的目的是降低网络IO对应用的影响;三级缓存指业务层缓存,主要是降低复杂计算对CPU性能的占用。
三、本地二级缓存
对于普通项目,使用内置本地二级缓存即能够满足需求,这里以MybatisPlus为例说明如何正确的使用二级缓存。
1、两套API
MybatisPlus内置封装两套访问数据库的API,一是以BaseMapper为基础的API,另一套是以AR为基础的API,二者在使用二级缓存不可通用。表现形式是BaseMapper内置接口缓存的数据,使用AR内置接口更新数据时无法清楚缓存,至少到此版本尚不支持。
考虑到BaseMapper接口体系比较丰富,因此选择保留BaseMapper体系接口而禁用AR接口,从机制上保证使用的是一套接口,从而调用增删查改能够实时刷新二级缓存。
需要指明的是Mapper层和Service层使用的是同一套接口,因此可放心使用。
2、缓存实现类型
默认二级缓存实现类型为PerpetualCache
,此中类型的缓存要求被缓存的对象实现序列化接口。其它类型的本地缓存有EhCache、Caffeine等。
以上就是MybatisPlus二级缓存体系探究分析的详细内容,更多关于MybatisPlus二级缓存体系的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?