Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存
来源:互联网 发布:js保存图片到手机相册 编辑:程序博客网 时间:2024/06/06 23:51
源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113
1、Maven配置
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.5.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency></span>
2、Properties 配置文件
redis.pool.maxActive=100
redis.pool.maxIdle=20
redis.pool.maxWait=3000
redis.ip=localhost
redis.port=6379
3、代码具体实现的Client
/** * * <p> * Redis客户端访问 * </p> * * @author 卓轩 * @创建时间:2014年7月11日 * @version: V1.0 */public class RedisClient {public static JedisPool jedisPool; // 池化管理jedis链接池static {//读取相关的配置ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));String ip = resourceBundle.getString("redis.ip");int port = Integer.parseInt(resourceBundle.getString("redis.port"));JedisPoolConfig config = new JedisPoolConfig(); //设置最大连接数config.setMaxTotal(maxActive);//设置最大空闲数config.setMaxIdle(maxIdle);//设置超时时间config.setMaxWaitMillis(maxWait);//初始化连接池jedisPool = new JedisPool(config, ip, port); }/** * 向缓存中设置字符串内容 * @param key key * @param value value * @return * @throws Exception */public static boolean set(String key,String value) throws Exception{Jedis jedis = null;try {jedis = jedisPool.getResource();jedis.set(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{jedisPool.returnResource(jedis);}}/** * 向缓存中设置对象 * @param key * @param value * @return */public static boolean set(String key,Object value){Jedis jedis = null;try {String objectJson = JSON.toJSONString(value);jedis = jedisPool.getResource();jedis.set(key, objectJson);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{jedisPool.returnResource(jedis);}}/** * 删除缓存中得对象,根据key * @param key * @return */public static boolean del(String key){Jedis jedis = null;try {jedis = jedisPool.getResource();jedis.del(key);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{jedisPool.returnResource(jedis);}}/** * 根据key 获取内容 * @param key * @return */public static Object get(String key){Jedis jedis = null;try {jedis = jedisPool.getResource();Object value = jedis.get(key);return value;} catch (Exception e) {e.printStackTrace();return false;}finally{jedisPool.returnResource(jedis);}}/** * 根据key 获取对象 * @param key * @return */public static <T> T get(String key,Class<T> clazz){Jedis jedis = null;try {jedis = jedisPool.getResource();String value = jedis.get(key);return JSON.parseObject(value, clazz);} catch (Exception e) {e.printStackTrace();return null;}finally{jedisPool.returnResource(jedis);}}}
4、Sharding 分片管理
/** * * <p> * Sharding Redis Client 工具类 * </p> * * @author 卓轩 * @创建时间:2014年7月11日 * @version: V1.0 */public class ShardingRedisClient {private static ShardedJedisPool shardedJedisPool;static {// 读取相关的配置ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));String ip = resourceBundle.getString("redis.ip");int port = Integer.parseInt(resourceBundle.getString("redis.port"));//设置配置JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(maxActive);config.setMaxIdle(maxIdle);config.setMaxWaitMillis(maxWait);//设置分片元素信息JedisShardInfo shardInfo1 = new JedisShardInfo(ip,port);JedisShardInfo shardInfo2 = new JedisShardInfo(ip,port);List<JedisShardInfo> list = new ArrayList<JedisShardInfo>();list.add(shardInfo1);list.add(shardInfo2);shardedJedisPool = new ShardedJedisPool(config, list);}/** * 向缓存中设置字符串内容 * @param key key * @param value value * @return * @throws Exception */public static boolean set(String key,String value) throws Exception{ShardedJedis jedis = null;try {jedis = shardedJedisPool.getResource();jedis.set(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{shardedJedisPool.returnResource(jedis);}}/** * 向缓存中设置对象 * @param key * @param value * @return */public static boolean set(String key,Object value){ShardedJedis jedis = null;try {String objectJson = JSON.toJSONString(value);jedis = shardedJedisPool.getResource();jedis.set(key, objectJson);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{shardedJedisPool.returnResource(jedis);}}/** * 删除缓存中得对象,根据key * @param key * @return */public static boolean del(String key){ShardedJedis jedis = null;try {jedis = shardedJedisPool.getResource();jedis.del(key);return true;} catch (Exception e) {e.printStackTrace();return false;}finally{shardedJedisPool.returnResource(jedis);}}/** * 根据key 获取内容 * @param key * @return */public static Object get(String key){ShardedJedis jedis = null;try {jedis = shardedJedisPool.getResource();Object value = jedis.get(key);return value;} catch (Exception e) {e.printStackTrace();return false;}finally{shardedJedisPool.returnResource(jedis);}}/** * 根据key 获取对象 * @param key * @return */public static <T> T get(String key,Class<T> clazz){ShardedJedis jedis = null;try {jedis = shardedJedisPool.getResource();String value = jedis.get(key);return JSON.parseObject(value, clazz);} catch (Exception e) {e.printStackTrace();return null;}finally{shardedJedisPool.returnResource(jedis);}}}
5、 单元测试、保存对象、写入对象
/** * * <p> * 测试独立redis 客户端 * </p> * * @author 卓轩 * @创建时间:2014年7月11日 * @version: V1.0 */public class SimpleClient {@Testpublic void userCache(){//向缓存中保存对象UserDO zhuoxuan = new UserDO();zhuoxuan.setUserId(113445);zhuoxuan.setSex(1);zhuoxuan.setUname("卓轩");zhuoxuan.setUnick("zhuoxuan");zhuoxuan.setEmail("zhuoxuan@mogujie.com");//调用方法处理boolean reusltCache = RedisClient.set("zhuoxuan", zhuoxuan);if (reusltCache) {System.out.println("向缓存中保存对象成功。");}else{System.out.println("向缓存中保存对象失败。");}}@Testpublic void getUserInfo(){UserDO zhuoxuan = RedisClient.get("zhuoxuan",UserDO.class);if(zhuoxuan != null){System.out.println("从缓存中获取的对象," + zhuoxuan.getUname() + "@" + zhuoxuan.getEmail());}}}
1 1
- Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存
- Redis缓存系统(1)Java-Jedis操作Redis,基本操作以及 实现对象保存
- jedis 操作redis (java 缓存机制)
- redis的java客户端jedis(二)jedis基本操作
- Java操作Redis--Jedis
- jedis-JAVA操作Redis
- 用Jedis操作redis缓存
- redis jedis基本操作命令
- java 操作Redis key 命令 实例(Jedis) (一)
- Java Jedis操作Redis示例(一)——pub/sub模式实现消息队列
- Jedis学习使用(java操作redis)
- Java通过Jedis操作Redis
- Java使用Jedis操作Redis
- Java使用Jedis操作Redis
- Jedis使用java操作Redis
- Java中Jedis操作Redis
- Java 使用Jedis操作Redis
- java 使用jedis操作redis
- 亚马逊Redshift免费试用两个月
- 浏览器插件之ActiveX开发(一)
- Qwt源码解读之标尺相关类——QwtScaleDiv
- 浏览器插件之ActiveX开发(二)
- 信息平台出现XXXX temp 错误的解决办法
- Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存
- 再谈IObjectSafety
- 官网下载的oracle 11g 64 安装过程中说找不到某些文件
- 详细解析Java中抽象类和接口的区别
- 浏览器插件之ActiveX开发(三)
- Linux 文件和目录的读写执行权限详解
- 浏览器插件之ActiveX开发(四)
- samsung s5 模拟Touch
- 浏览器插件之ActiveX开发(五)