MyBatis+Redis缓存实现
来源:互联网 发布:php 36进制 编辑:程序博客网 时间:2024/05/01 09:30
1.RedisCache.java
import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.ibatis.cache.Cache;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class RedisCache implements Cache { private static Log logger = LogFactory.getLog(RedisCache.class); private Jedis redisClient = createClient(); /** The ReadWriteLock. */ private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(); private String id; public RedisCache(final String id) { if (id == null) { throw new IllegalArgumentException("Cache instances require an ID"); } logger.debug("----------->>MybatisRedisCache:id=" + id); this.id = id; } public String getId() { return this.id; } public int getSize() { return Integer.valueOf(redisClient.dbSize().toString()); } public void putObject(Object key, Object value) { byte[] bytes = SerializeUtil.serialize(value); redisClient.set(SerializeUtil.serialize(key.toString()), bytes); logger.debug("----------->>putObject:" + key + "=" + value); } public Object getObject(Object key) { byte[] bytes = redisClient.get(SerializeUtil.serialize(key.toString())); Object value = SerializeUtil.unserialize(bytes); logger.debug("----------->>getObject:" + key + "=" + value); return value; } public Object removeObject(Object key) { return redisClient.expire(SerializeUtil.serialize(key.toString()), 0); } public void clear() { redisClient.flushDB(); } public ReadWriteLock getReadWriteLock() { return readWriteLock; } protected static Jedis createClient() { try { JedisPoolConfig config = new JedisPoolConfig(); JedisPool pool = new JedisPool(config, "175.15.27.322"); return pool.getResource(); } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("初始化连接池错误"); }}
2.TestUser.mapper.xml
mapper配置文件中加入一家配置:
<cache eviction="LRU" type="com.ecs.redis.RedisCache" />
refer: http://blog.csdn.net/fhx007/article/details/12680875
0 0
- mybatis缓存 redis实现
- MyBatis+Redis缓存实现
- Mybatis自定义缓存——Redis实现
- Spring+Redis+MyBatis实现缓存整合
- Redis+MyBatis自定义注解实现缓存
- Mybatis redis 缓存配置
- MyBatis redis缓存
- 【二】Springboot+Mybatis+Redis实现用户信息查询缓存
- mybatis整合REDIS远程缓存
- mybatis缓存(二)+redis
- SpringMVC+Spring+mybatis+redis项目从零开始--redis缓存策略和配置实现
- SpringMVC+Spring+mybatis+redis项目从零开始--redis缓存策略和配置实现
- Mybatis实现【6】--缓存
- MyBatis 一级缓存实现
- mybatis+redis+mybatis-redis实现二级缓存
- redis实现缓存
- redis实现缓存
- spring + redis实现缓存
- css3中transition属性
- 344. Reverse String
- QString基础知识
- 深度学习视觉领域常用数据集汇总
- Idea16使用Maven编译scala和打包jar
- MyBatis+Redis缓存实现
- MiniGui开发:ubuntu-14.04环境移植MiniGui
- 第十四周项目1(2)——验证分块查找算法
- Ubuntu中设置固定ip和静态DNS
- Android adb 环境变量配置的坑 adb 不是内部或外部命令
- iOS蓝牙4.0(BLE)-后台接收数据
- jQuery之Deferred对象详解
- 【第14周项目1-(1)验证折半查找算法】
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式