生活随笔
收集整理的這篇文章主要介紹了
Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
源代碼下載:?http://download.csdn.net/detail/jiangtao_st/7623113
?
1、Maven配置
?
[html]?view plaincopyprint?
<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
?
[java]?view plaincopyprint?
public?class?RedisClient?{????????????public??static??JedisPool?jedisPool;???????????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);???????}????????????????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);??????????}??????}????????????????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);??????????}??????}????????????????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);??????????}??????}????????????????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);??????????}??????}??????????????????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 分片管理
?
[java]?view plaincopyprint?
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);??????}??????????????????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);??????????}??????}????????????????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);??????????}??????}????????????????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);??????????}??????}????????????????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);??????????}??????}??????????????????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、 單元測試、保存對象、寫入對象
?
?
[java]?view plaincopyprint?
public?class?SimpleClient?{????????????@Test??????public?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("向緩存中保存對象失敗。");??????????}??????}??????????????????@Test??????public?void?getUserInfo(){????????????????????UserDO?zhuoxuan?=?RedisClient.get("zhuoxuan",UserDO.class);??????????if(zhuoxuan?!=?null){??????????????System.out.println("從緩存中獲取的對象,"?+?zhuoxuan.getUname()?+?"@"?+?zhuoxuan.getEmail());??????????}????????????????}????????????????} ?
轉載于:https://www.cnblogs.com/fx2008/p/4155146.html
總結
以上是生活随笔為你收集整理的Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。