八 mybatis查询缓存(一级缓存,二级缓存)和ehcache整合

1       查询缓存

1.1     什么是查询缓存

mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。

mybaits提供一级缓存,和二级缓存。

aaarticlea/png;base64,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" alt="" />

一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。

二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

为什么要用缓存?

如果缓存中有数据就不用从数据库中获取,大大提高系统性能。

1.2     一级缓存

1.2.1     一级缓存工作原理

aaarticlea/png;base64,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eSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPJeQQwIJeSyEvACEPNcYDXlHR0fcA4HnSMhjkQ35vn374h5Ikgl5rjEX8s8//7y4uPju3btxDwSeo2XLli1cuDDuUYw5V69eLS4uPnjwYNwDSbLq6upUKiXkw425kB86dOill15auXLlHyC5Xn755UWLFsV9tI05N27cmDx58rx58+Le/0k2ffr0VCo1ODgY995+gYy5kJ89e3bhwoUlJSWzILnmzJmzZ8+euI+2MefevXtVVVWzZ8+Oe/8n2WuvvbZ169a4d/WLZcyFfHBwsK+vr6en5wEkV29vr2uPsXj8+PHDhw/j3v9J1tvb29/fH/d+frGMuZADQJIIOQAETMgBIGBCDgABE3IACJiQA0DAhBwAAibkABAwIQeAgAk5AARMyAEgYEIOAAETcgAImJADQMCEHAACJuQAEDAhB4CACTkABEzIASBgQg4AARNyAAiYkANAwIQcAAIm5AAQMCEHgIAJOQAETMgBIGBCDgABE3IACJiQA0DAhBwAAibkABAwIQeAgAk5AARMyAEgYEIOAAETcgAImJADQMCEHAACJuQAEDAhB4CACTkABEzIASBgQg4AARNyAAiYkANAwIQcAAIm5AAQMCEHgIAJOQAETMgBIGBCDgABE3IACJiQA0DAhBwAAibkABAwIQeAgAk5AARMyAEgYEIOAAETcgAImJADQMCEHAACJuQAEDAhB4CACTkABEzIASBgQg4AARNyAAiYkANAwIQcAAIm5AAQMCEHgIAJOQAETMgBIGBCDgABE3IACJiQA0DAhBwAAibkABCw/If8+vXr+RgYAPD98hnyurq6adOm9fb25mNgAMD3q6+vnzp1amdn5/Av/siQf/bZZxMmTNiwYUMNAFAQc+fOnTJlyu3bt/MQ8tbW1tLS0ldffXUGAFAQM2fOrKqq6unpyUPIBwYGenp67gEAhXL//v1Hjx6NKPKPDDkA8CIQcgAImJADQMCEHAACJuQAEDAhB4CACTkABEzIASBgQg4AARNyAAiYkANAwP4L9hl0NMdYI9QAAAAASUVORK5CYII=" alt="" />

第一次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用户信息,如果没有,从数据库查询用户信息。

得到用户信息,将用户信息存储到一级缓存中。

如果sqlSession去执行commit操作(执行插入、更新、删除),清空SqlSession中的一级缓存,这样做的目的为了让缓存中存储的是最新的信息,避免脏读。

第二次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用户信息,缓存中有,直接从缓存中获取用户信息,如果没有查询数据库。

1.2.2     一级缓存测试

mybatis默认支持一级缓存,不需要在配置文件去配置。

按照上边一级缓存原理步骤去测试。

  public void testCache1() throws Exception{

           SqlSession sqlSession = sqlSessionFactory.openSession();//创建代理对象

           UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

           //下边查询使用一个SqlSession

           //第一次发起请求,查询id为1的用户

           User user1 = userMapper.findUserById(1);
System.out.println(user1); // 如果sqlSession去执行commit操作(执行插入、更新、删除),清空SqlSession中的一级缓存,这样做的目的为了让缓存中存储的是最新的信息,避免脏读。 //更新user1的信息 user1.setUsername("测试用户22");
userMapper.updateUser(user1); //执行commit操作去清空缓存 sqlSession.commit(); //第二次发起请求,查询id为1的用户 User user2 = userMapper.findUserById(1);
System.out.println(user2); sqlSession.close(); }

1.2.3     一级缓存应用

正式开发,是将mybatis和spring进行整合开发,事务控制在service中。

一个service方法中包括 很多mapper方法调用。

service{

//开始执行时,开启事务,创建SqlSession对象

//第一次调用mapper的方法findUserById(1)

//第二次调用mapper的方法findUserById(1),从一级缓存中取数据

//方法结束,sqlSession关闭

}

如果是执行两次service调用查询相同 的用户信息,不走一级缓存,因为session方法结束,sqlSession就关闭,一级缓存就清空。

1.3     二级缓存

1.3.1     原理

aaarticlea/png;base64,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" alt="" />

首先开启mybatis的二级缓存。

sqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到二级缓存中。

如果SqlSession3去执行相同 mapper下sql,执行commit提交,清空该 mapper下的二级缓存区域的数据。

sqlSession2去查询用户id为1的用户信息,去缓存中找是否存在数据,如果存在直接从缓存中取出数据。

二级缓存与一级缓存区别,二级缓存的范围更大,多个sqlSession可以共享一个UserMapper的二级缓存区域。

UserMapper有一个二级缓存区域(按namespace分) ,其它mapper也有自己的二级缓存区域(按namespace分)。

每一个namespace的mapper都有一个二缓存区域,两个mapper的namespace如果相同,这两个mapper执行sql查询到数据将存在相同 的二级缓存区域中。

1.3.2     开启二级缓存

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

在核心配置文件SqlMapConfig.xml中加入

 <setting name="cacheEnabled" value="true"/>

描述

允许值

默认值

cacheEnabled

对在此配置文件下的所有cache 进行全局性开/关设置。

true false

true

在UserMapper.xml中开启二缓存,UserMapper.xml下的sql执行完成会存储到它的缓存区域(HashMap)。

 <!-- 开启本mapper的namespace下的二级缓存 -->
<cache/>

1.3.3     调用pojo类实现序列化接口

 public class User implements Serializable{
private Integer id; private String username; private Date birthday; private String sex; private String address; private List<Orders> ordersList;

为了将缓存数据取出执行反序列化操作,因为二级缓存数据存储介质多种多样,不一样在内存。

1.3.4     测试方法

 // 二级缓存测试
@org.junit.Test
public void testCache2() throws Exception { SqlSession sqlSession1 = sqlSessionFactory.openSession();
SqlSession sqlSession2 = sqlSessionFactory.openSession();
SqlSession sqlSession3 = sqlSessionFactory.openSession(); // 创建代理对象
UserMapper userMapper1 = sqlSession1.getMapper(UserMapper.class); // 第一次发起请求,查询id为1的用户
User user1 = userMapper1.findUserById(1);
System.out.println(user1); //这里执行关闭操作,将sqlsession中的数据写到二级缓存区域
sqlSession1.close(); //使用sqlSession3执行commit()操作
UserMapper userMapper3 = sqlSession3.getMapper(UserMapper.class); User user = userMapper3.findUserById(1);
user.setUsername("张明明"); userMapper3.updateUser(user); //执行提交,清空UserMapper下边的二级缓存 sqlSession3.commit();
sqlSession3.close(); UserMapper userMapper2 = sqlSession2.getMapper(UserMapper.class); // 第二次发起请求,查询id为1的用户
User user2 = userMapper2.findUserById(1);
System.out.println(user2); sqlSession2.close();
}

1.3.5     useCache配置

 <select id="findOrderListResultMap" resultMap="ordersUserMap" useCache="false">

在statement中设置useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出sql去查询,默认情况是true,即该sql使用二级缓存。

总结:针对每次查询都需要最新的数据sql,要设置成useCache=false,禁用二级缓存。

1.3.6     刷新缓存(就是清空缓存)

在mapper的同一个namespace中,如果有其它insert、update、delete操作数据后需要刷新缓存,如果不执行刷新缓存会出现脏读。

设置statement配置中的flushCache="true" 属性,默认情况下为true即刷新缓存,如果改成false则不会刷新。使用缓存时如果手动修改数据库表中的查询数据会出现脏读。

如下:

 <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User" flushCache="true">

总结:一般下执行完commit操作都需要刷新缓存,flushCache=true表示刷新缓存,这样可以避免数据库脏读。

1.4     mybatis整合ehcache

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

1.4.1     分布缓存

我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式)

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAApAAAAINCAIAAAAGL9iaAAAgAElEQVR4nO3dUWgb94Lv8dldkAN7FZcVcQ9unQrkJOVgF4OdFhynuMlpRbqNj/fErUvSc5I8VK4hSUtiticYKiVnyUaQjUnYtPEajg+BY2epa0PABIPBEAcHk5Zw/VJCCcEPF5+3PObe+3DnPvydyXgkjWZG+mv+f833x4eiyCNppJn+fxppNGP8+LdHAABAcUbocwAAAMqisAEA0ACFDQCABihsAAA0QGEDAKABChsAAA1Q2AAAaIDCBgBAAxQ2AAAaoLABANAAhQ0AgAYobAAANEBhAwCgAQobAAANUNgAAGiAwgYAQAMUNqCNqcXb47MTp0bPZEaGMiND+w/uf7vnHbsdr+4wtmbHqzsc0+w/uF/c/NTomfHZianF26E/LwBeUNiAisZnJy7dvJwZGfrtp/1WE7e91dbzbs/Xf/w6m81ms9m7d+8ubc3Gxoa5NRsbG45p7t69K27+9R+/7nm3p+2tNqvXf/tpf2Zk6NLNy+OzE6G/AgAcKGxACXcezl+6efnY0GcdXR2GYfS82zPwyUA2m52cnCzaxNWN6PXJyclsNjvwyUDPuz2GYXR0dRwb+uzSzct3Hs6H/voAoLCB0IjPtw8cOrjj1R0739g58MnA2NjYgwcPpHaz9zx48GBsbGzgk4Gdb+zc8eqOA4cOik/RQ3/dgGiisIFaG5+d+PjEJ/HtcfH59tzcnOwN6MqzsbExNzcnPkWPb49/fOITmhuoMQobqJGpxdvHhj7b8eqOnnd7vvvuu2fPnoXdwgHz7Nmz7777rufdnh2v7jg29Bm7rQG1QWEDct15OJ8Z+eK1ltfa3mobGxtTf2PaezY2NsbGxtreanut5bXMyBd81Q1IRWEDskzO3zr0Lx/ufGPnN9lvnj59Gna9SszTp0+/yX6z842dh/7lw8n5W6G/8kBdorCB6pucv/V2zzt739k7PT0ddpnWNNPT03vf2ft2zzvUNlB1FDZQTXcezh84dHDvO3uXlpbCbs/QsrS0tPedvQcOHeRDcqCKKGygakb+9K+79uyam5sLuzGVyNzc3K49u0b+9K+hLxegPlDYQBUsrC3uP7j/9Jennz9/HnZRKpTnz5+f/vL0/oP7F9YWQ19GgO4obKBSU4u3f93+67t374bdj4rm7t27v27/Nb/+AipEYQMV+feb+a63u2T8WMtxGHB5+5k/ffrU/YDklWdjY6Pr7a5/v5kPfXkB+qKwgeD+/Wb+o76Pqv4x+PT0dHt7+44dO96x5fXXX9+1a9fVq1er+EDffvvtrl27Xn/9dfsD7dixY9euXX/+85+r+ECmaT5//vyjvo/obCAwChsIaHx24uD7B6ve1p9//vmHH344NTX1U0F++OGHzz777P3336/KA3388ce//e1vf/jhh6IP1N/f//nnn1flgaw8f/784PsHOaYpEAyFDQSxsLbYuru16ocXff78+fbt2x88eFBYolZef/31yj8ef/bs2fbt210e5cGDB9u3b6/625Fnz5617m5lHzQgAAobCOLAoYOSfr51+vTp/fv3/9d//Vdhif7lL3/58MMPq7Xh+/nnn/f39//lL38p+kD79+//t3/7t6o8kCN/nfrrh7/759CXIKAdChvw7frUjffT1flcumju3r27f//+hoYG+1fL27dv37u3yodO+/Of/7x3797t27fbH6ihoWHv3r1Sd3rvebeHD8YBvyhswDd5m9f2PH/+3L7ztryzez179sz+QDX4Kfnc3NyBQwdDX46AXihswJ+FtcXXd77OAVIqyfPnz1/f+TrfZAO+UNiAP1cmr37U91HYlad9Pur76Mrk1dCXJqARChvw53x+NDOUCbvvtE9mKHM+Pxr60gQ0QmED/pwaPfP1H78Ou++0z9d//PrU6JnQlyagEQob8Cd77cLv//D7sPtO+/z+D7/PXrsQ+tIENEJhA/5Mzt/a+87esPtO++x9Z+/k/K3QlyagEQob8O21ltfknYojCnn69OlrLa+FvhwBvVDYgG+ZkS++yX4TdutpnG+y32RGvgh9OQJ6obAB35Ye32vd3SrjNJRRyMbGxmstr6+sr4a+HAG9UNhAELlrFz/7w2dhd5+WGfh4gJNsAgFQ2EBAH/7un/869dew60+zcOYPIDAKGwhoZX11/4H9S0tLYZegNllaWtp/YD8fhgPBUNhAcEuP73V0dfww+0OwAnv27NmjR4+qW4pS8+jRo8AHUf9h9oeOro6lx/dCX2qApihsoCIr66u/+fA3/3njPwN02NLSUkdHxyuvvNLf3//dd9/9/PPPwbpQan7++eexsbH+/v5XXnmlo6Mj2Ez+x9X/+M2Hv2HbGqgEhQ1UwcfHP3k//X6w/caf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" alt="" />

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

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

1.4.2     整合方法(掌握)

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

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

 public interface Cache {

   /**
* @return The identifier of this cache
*/
String getId(); /**
* @param key Can be any object but usually it is a {@link CacheKey}
* @param value The result of a select.
*/
void putObject(Object key, Object value); /**
* @param key The key
* @return The object stored in the cache.
*/
Object getObject(Object key); /**
* Optional. It is not called by the core.
*
* @param key The key
* @return The object that was removed
*/
Object removeObject(Object key); /**
* Clears this cache instance
*/
void clear(); /**
* Optional. This method is not called by the core.
*
* @return The number of elements stored in the cache (not its capacity).
*/
int getSize(); /**
* Optional. As of 3.2.6 this method is no longer called by the core.
*
* Any locking needed by the cache must be provided internally by the cache provider.
*
* @return A ReadWriteLock
*/
ReadWriteLock getReadWriteLock(); }

mybatis默认实现cache类是:PerpetualCache

 /**
* @author Clinton Begin
*/
public class PerpetualCache implements Cache { private String id; private Map<Object, Object> cache = new HashMap<Object, Object>(); public PerpetualCache(String id) {
this.id = id;
} public String getId() {
return id;
} public int getSize() {
return cache.size();
} public void putObject(Object key, Object value) {
cache.put(key, value);
} public Object getObject(Object key) {
return cache.get(key);
}

1.4.3     加入ehcache包

aaarticlea/png;base64,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*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" alt="" />

1.4.4     整合ehcache

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

public final class org.mybatis.caches.ehcache.EhcacheCache implements org.apache.ibatis.cache.Cache {

     <!-- 开启本mapper的namespace下的二缓存
type:指定cache接口的实现类的类型,mybatis默认使用PerpetualCache
要和ehcache整合,需要配置type为ehcache实现cache接口的类型
-->
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

1.4.5     加入ehcache的配置文件

在classpath下配置ehcache.xml

 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<diskStore path="F:\develop\ehcache" />
<defaultCache
maxElementsInMemory="1000"
maxElementsOnDisk="10000000"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
</ehcache>

1.5     二级应用场景

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

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

1.6     二级缓存局限性

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

项目源码:

链接:http://pan.baidu.com/s/1bpmSbON 密码:sf3x

上一篇:linux知识


下一篇:[Effective Java]第八章 通用程序设计