码迷,mamicode.com
首页 > 系统相关 > 详细

29Mybatis_整合ehcache以及应用场景

时间:2016-08-22 21:29:16      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

ehcache是一个分布式缓存框架。

分布缓存

技术分享

 

不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统 开发。所以要使用分布式缓存对缓存数据进行集中管理。

mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合。

 

 

 

 

     整合方法(掌握)

 

mybatis提供了一个cache接口,如果要实现自己的缓存逻辑,实现cache接口开发即可。

 mybatis和ehcache整合,mybatis和ehcache整合包中提供了一个cache接口的实现类。

技术分享

 

mybatis默认实现cache类是:

技术分享

 

    加入ehcache包

技术分享

 

 

   整合ehcache

配置mapper中cache中的type为ehcache对cache接口的实现类型。

技术分享

 

 

     加入ehcache的配置文件

在classpath下配置ehcache.xml

 

技术分享

 ------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

二级应用场景:

对于访问多的查询请求且用户对查询结果实时性要求不高,此时可采用mybatis二级缓存技术降低数据库访问量,提高访问速度,业务场景比如:耗时较高的统计分析sql、电话账单查询sql等。

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

 

 

    二级缓存局限性

 

         mybatis二级缓存对细粒度的数据级别的缓存实现不好,比如如下需求:对商品信息进行缓存,由于商品信息查询访问量大,但是要求用户每次都能查询最新的商品信息,此时如果使用mybatis的二级缓存就无法实现当一个商品变化时只刷新该商品的缓存信息而不刷新其它商品的信息,因为mybaits的二级缓存区域以mapper为单位划分,当一个商品信息变化会将所有商品信息的缓存数据全部清空。解决此类问题需要在业务层根据需求对数据有针对性缓存。

 

29Mybatis_整合ehcache以及应用场景

标签:

原文地址:http://www.cnblogs.com/shenxiaoquan/p/5796857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!