Mybatis整合Redis实现二级缓存

mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓存

开启mybatis的二级缓存

<!--设置mybaits对缓存的支持-->

    <property name="configurationProperties">

        <props>

            <!-- 全局映射器启用缓存 *主要将此属性设置完成即可-->

            <prop key="cacheEnabled">true</prop>

            <!-- 查询时,关闭关联对象即时加载以提高性能 -->

            <prop key="lazyLoadingEnabled">false</prop>

            <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->

            <prop key="aggressiveLazyLoading">true</prop>

        </props>

    </property>

测试,产生了两条sql语句,说明缓存没有生效

因为我们还需要在BookMapper.xml中添加二级缓存核心类

再次测试,只产生一条sql语句,说明使用了缓存

当查询两次,如果控制台产生两条查询语句,说明mybatis不能同时缓存多条数据。

如果只产生一条查询语句,说明mybatis默认缓存多条数据

测试

(框架的缓存策略)

说明mybatis二级缓存开启,默认既可以缓存单条,也可以缓存多条数据

也可以通过mapper.xml中的userCache属性控制是否使用缓存

测试

此时表示多条数据的缓存已经关闭

小结

对于访问多的查询请求且用户对查询结果实时性要求不高,此时可采用mybatis二级缓存技术降低数据库访问量,提高访问速度

实现方法如下:通过设置刷新间隔时间,由mybatis每隔一段时间自动清空缓存,根据数据变化频率设置缓存刷新间隔flushInterval,比如设置为30分钟、60分钟、24小时等,根据需求而定

mybatis整合redis


稍微大型项目都会使用redis缓存

步骤与ehcache缓存几乎一致

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值