[由零开始] 六、MyBatis二级缓存整合redis

本文详细介绍了MyBatis二级缓存的概念和作用,探讨了在分布式环境下二级缓存的问题,以及为何需要整合redis来解决数据不一致的问题。文章还涵盖了二级缓存的开启配置,包括在sqlMapConfig.xml和mapper.xml中的设置,以及useCache和flushCache的使用。同时,文章分析了二级缓存的源码,并介绍了如何整合redis,包括Mybatis提供的Mybatis-redis包和在Mapper.xml中的配置。最后,预告了接下来将讨论Mybatis的插件及插件编写。
摘要由CSDN通过智能技术生成

MyBatis二级缓存整合redis

MyBatis缓存机制大致可以这么去理解 :
在这里插入图片描述
所以开启二级缓存 可以减少相同方法的对数据库的频繁连接
有效的减少数据库的压力
那么为什么要整合redis?
Mybatis的二级缓存又有什么问题呢?

为什么要整合redis?

为什么要整合redis?
这要解释一下 在我们分布式服务下 Mybatis的二级缓存 在不同节点上的两套服务 虽然在数据库下查询的数据是相同的 但是由于是两个不同的服务 所以缓存是不公用的
这就会导致 可能会一个节点有缓存一个节点没有
当一个节点提交事务被缓存清掉时
另一个节点由于没有提交事务所以缓存还在
这样就会导致数据不一致的情况发生

整合了redis 由于key相同 多节点可以操作同一套缓存
那么无论是查询还是提交事务 缓存都会同步改变

二级缓存的开启

开启二级缓存和一级缓存的默认配置不同
二级缓存需要我们手动添加
首先我们先在全局配置文件sqlMapConfig.xml 添加如下配置

开启二级缓存的配置

<!-- 开启二级缓存--> 
<settings>
<setting name="cacheEnabled" value="true"/> 
</settings>

其次记得在mapper.xml中添加如下配置

<!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值