[由零开始] 六、MyBatis二级缓存整合redis
MyBatis二级缓存整合redis
MyBatis缓存机制大致可以这么去理解 :
所以开启二级缓存 可以减少相同方法的对数据库的频繁连接
有效的减少数据库的压力
那么为什么要整合redis?
Mybatis的二级缓存又有什么问题呢?
为什么要整合redis?
为什么要整合redis?
这要解释一下 在我们分布式服务下 Mybatis的二级缓存 在不同节点上的两套服务 虽然在数据库下查询的数据是相同的 但是由于是两个不同的服务 所以缓存是不公用的
这就会导致 可能会一个节点有缓存一个节点没有
当一个节点提交事务被缓存清掉时
另一个节点由于没有提交事务所以缓存还在
这样就会导致数据不一致的情况发生
整合了redis 由于key相同 多节点可以操作同一套缓存
那么无论是查询还是提交事务 缓存都会同步改变
二级缓存的开启
开启二级缓存和一级缓存的默认配置不同
二级缓存需要我们手动添加
首先我们先在全局配置文件sqlMapConfig.xml 添加如下配置
开启二级缓存的配置
<!-- 开启二级缓存-->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
其次记得在mapper.xml中添加如下配置
<!