介绍
使用mybatis时可以使用二级缓存提高查询速度,进而改善用户体验。 使用redis做mybatis的二级缓存可内存可控<如将单独的服务器部署出来用于二级缓存>,管理方便。
使用思路
- 配置redis-applicationContext.xml 设置redis服务连接各参数
- 在配置文件中使用标签,设置开启二级
- 在需要使用二级h缓存的mapper.xml中使用将cache映射到指定的MybatisRedis类中
- 映射类MybatisRedisCache实现MyBatis包中的Cache类,并重写其中各方法; 在重写各方法体中,使用redisFactory和redis服务建立连接,将缓存的数据加载到指定的redis内存中(putObject方法)或将redis 服务中的数据从缓存中读取出来(getObject方法); 在redis服务中写入和加载数据时需要借用spring-data-redis.jar中JdkSerializationRedisSerializer.class中的序列化(serialize) 和反序列化方法(deserialize),此为包中封装的redis默认的序列化方法;
- 映射类中的各方法重写完成后即可实现mybatis数据二级缓存到redis服务中
代码实践
配置redis-applicationContext.xml
mybatis-config.xml配置开启二级缓存
在mapper.xml中映射缓存类MybatisRedisCache
使用中间类RedisCacheTransfer解决MybatisRedisCache.jedisConnectionFactory的静态注入。