【笔记】redis实现类
package hry.redis.common.utils.impl; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Resource; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import hry.redis.common.utils.RedisService; import hry.redis.common.utils.SerializeUtil; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.Tuple; /** */ public class RedisServiceImpl implements RedisService { @Resource(name = "jedisPool") private JedisPool jedisPool; // 锁前缀 private static final String LOCK_PREFIX = "LOCK:LOCK_"; private static final int timeout = 20; private static final int time = 10 * 1000; @Override public String save(String key, String value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.set(key, value); } catch (Exception e) { e.printStackTrace(); return ""; } finally { jedis.close(); } } @Override public Map<String, String> getMap(String key) { Jedis jedis = null; try { jedis = this.jedisPool.getResource(); Map<String, String> map = jedis.hgetAll(key); Map var4 = map; return var4; } catch (Exception var8) { var8.printStackTrace(); } finally { jedis.close(); } return null; } @Override public String getMap(String key, String code) { Jedis jedis = null; try { jedis = jedisPool.getResource(); String ss = jedis.hget(key, code); return ss; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public void hset(String hkey, String key, String value) { Jedis jedis = null; try { jedis = this.jedisPool.getResource(); jedis.hset(hkey,key,value); } catch (Exception var8) { var8.printStackTrace(); } finally { jedis.close(); } } @Override public <T> List<T> getList(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); byte[] in = jedis.get(key.getBytes()); List<T> list = (List<T>) SerializeUtil.unserialize(in); return list; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public <T> void setList(String key, List<T> list) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key.getBytes(), SerializeUtil.serialize(list)); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } @Override public void saveMap(String key, Map<String, String> map) { Jedis jedis = null; try { jedis = this.jedisPool.getResource(); jedis.hmset(key, map); } catch (Exception var8) { ; } finally { jedis.close(); } } @Override public void save(String key, String value, int second) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value); jedis.expire(key, second); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } @Override public String get(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.get(key); } catch (Exception e) { e.printStackTrace(); return ""; } finally { jedis.close(); } } @Override public Long delete(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.del(key); } catch (Exception e) { e.printStackTrace(); return (long) 0; } finally { jedis.close(); } } @Override public void setTime(String key, int second) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.expire(key, second); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } /*** * * @param patt * @return */ @Override public Set<String> keys(String patt) { Jedis jedis = jedisPool.getResource(); try { Set<String> keys = jedis.keys("*" + patt + "*"); return keys; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public Set<String> hkeys(final String key){ Jedis jedis = jedisPool.getResource(); try { Set<String> keys = jedis.hkeys(key); return keys; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public String getLendConfig(String key) { String val = ""; Jedis jedis = jedisPool.getResource(); try { String string = jedis.get("configCache:financeLendConfig"); JSONObject obj = JSON.parseObject(string); if (null != key && obj.get(key) != null) { val = obj.get(key).toString(); } } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return val; } @Override public String hget(String hkey, String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.hget(hkey, key); } catch (Exception e) { e.printStackTrace(); return ""; } finally { jedis.close(); } } @Override public Map<String,String> hgetall(String hkey) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.hgetAll(hkey); } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * 获取key生存时间 */ @Override public Long getKeyTime(String key) { Jedis jedis = jedisPool.getResource(); try { Long l = jedis.ttl(key); return l; } catch (Exception e) { } finally { jedis.close(); } return null; } @Override public Set<String> noPerkeys(String patt) { Jedis jedis = jedisPool.getResource(); try { Set<String> keys = jedis.keys(patt + "*"); return keys; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } /** * 加锁 * * @param key * @return */ @Override public boolean lock(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); String nkey = LOCK_PREFIX + key; String value = System.currentTimeMillis() + time + ""; Long result = jedis.setnx(nkey, value); if (result == 1) { jedis.expire(nkey, timeout); return true; } else { String dkey = jedis.get(LOCK_PREFIX + key); Long skey = dkey != null ? Long.valueOf(dkey) : null; long currentTime = System.currentTimeMillis(); if ((null != skey && skey > currentTime) || skey == null) { String svalue = System.currentTimeMillis() + time + ""; Long setnx = jedis.setnx(nkey, svalue); if (setnx == 1) { jedis.expire(nkey, timeout); return true; } } } } catch (Exception e) { e.printStackTrace(); return false; } finally { jedis.close(); } return false; } /** * 释放锁 * * @param key */ @Override public void unLock(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); String nkey = LOCK_PREFIX + key; jedis.del(nkey); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } /** * 保存一个单个键值对进到map里.如果mKey已经存在于map里将会覆盖之前的值。 * * @param key * @param mKey * @param value */ @Override public void saveMap(String key, String mKey, String value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.hset(key, mKey, value); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } /** * 删除某个key 所对应的value。 * * @param key * @param mKey * @return */ @Override public String delMapKey(String key, String mKey) { Jedis jedis = null; try { jedis = jedisPool.getResource(); String ss = jedis.hget(key, mKey); return ss; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public Long getExpireTime(String key) { Long result = -2L; Jedis jedis = null; try { jedis = jedisPool.getResource(); result = jedis.ttl(key); return result; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return result; } @Override public void rpush(String key, String value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.rpush(key,value); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } } @Override public void zadd(String key,double score, String value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.zadd(key,score,value); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } } @Override public void zream(String key, double score) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.zremrangeByScore(key,score,score); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } } @Override public Set<String> zrange(String key, long start,long end) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.zrange(key,start,end); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } @Override public Set<String> zrangeByScore(String key, double min,double max) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.zrangeByScore(key, min, max); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } @Override public Long setnx(String key, String value){ Jedis jedis = null; Long result = null; try { jedis = jedisPool.getResource(); result = jedis.setnx(key, value); return result; } catch (Exception e){ e.printStackTrace(); } finally { if (jedis != null) { jedisPool.returnResource(jedis); } } return null; } @Override public Long expire(String key, int seconds){ Jedis jedis = null; Long result = null; try { jedis = jedisPool.getResource(); result = jedis.expire(key, seconds); return result; } catch (Exception e){ e.printStackTrace(); } finally { if (jedis != null) { jedisPool.returnResource(jedis); } } return null; } @Override public void publish(String channel, String message) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.publish(channel,message); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } @Override public void subscribe(JedisPubSub jedisPubSub, String channel) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.subscribe(jedisPubSub,channel); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } /** * set sadd * @param key * @param val * @return * @author denghf */ public Long sadd(String key, String... val){ Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.sadd(key, val); } catch (Exception e) { e.printStackTrace(); return 0L; } finally { jedis.close(); } } /** * set smembers * @param key * @return * @author denghf */ public Set<String> smembers(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Set<String> smembers = jedis.smembers(key); return smembers; } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * zremrangeByScore * @param key * @param scoreMin * @param scoreMax * @return * @author denghf */ @Override public Long zremrangeByScore(String key, double scoreMin, double scoreMax) { Jedis jedis = null; try { jedis = jedisPool.getResource(); Long aLong = jedis.zremrangeByScore(key, scoreMin, scoreMax); return aLong; } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * zscore * @param key * @param member * @return * @author denghf */ public Long zrank(String key, String member){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Long aLong = jedis.zrank(key, member); return aLong; } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * zscore * @param key * @param member * @return * @author denghf */ public Double zscore(String key, String member){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Double aLong = jedis.zscore(key, member); return aLong; } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * zrem * @param key * @param members * @return * @author denghf */ public Long zrem(String key, String... members){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Long aLong = jedis.zrem(key, members); return aLong; } catch (Exception e) { e.printStackTrace(); return null; } finally { jedis.close(); } } /** * zrangeWithScores * @param key * @param start * @param end * @return */ @Override public Set<Tuple> zrangeWithScores(String key, long start,long end) { Jedis jedis = null; try { jedis = jedisPool.getResource(); Set<Tuple> tuples = jedis.zrangeWithScores(key, start, end); return tuples; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * lpop * @param key * @return * @author denghf */ public String lpop(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); String lpop = jedis.lpop(key); return lpop; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * lrange * @param key * @return * @author denghf */ public List<String> lrange(String key, long start, long end){ Jedis jedis = null; try { jedis = jedisPool.getResource(); List<String> lrange = jedis.lrange(key, start, end); return lrange; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * lrem * @param key * @return * @author denghf */ public Long lrem(String key, long count, String value){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Long lrem = jedis.lrem(key, count, value); return lrem; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * hdel * @param key * @return * @author denghf */ public Long hdel(String key, String... field){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Long hdel = jedis.hdel(key, field); return hdel; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * lpush * @param key * @return * @author denghf */ public Long lpush(String key, String... val){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Long lpush = jedis.lpush(key, val); return lpush; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * set * @param key * @param val * @author denghf * @return */ public String set(byte[] key, byte[] val){ Jedis jedis = null; try { jedis = jedisPool.getResource(); String set = jedis.set(key, val); return set; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } /** * get * @param key * @author denghf * @return */ public byte[] get(byte[] key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); byte[] bytes = jedis.get(key); return bytes; } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } @Override public Set<String> delkeys(String patt) { Jedis jedis = jedisPool.getResource(); try { Set<String> keys = jedis.keys("*" + patt + "*"); Iterator<String> iterator = keys.iterator(); while (iterator.hasNext()) { jedis.del(iterator.next()); } return keys; } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } return null; } @Override public Set<String> zrevrange(String key, long start,long end) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.zrevrange(key, start, end); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } @Override public Set<String> zrevrangeByScore(String key, String start,String end) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.zrevrangeByScore(key, start, end); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null) { jedis.close(); } } return null; } }