• 【笔记】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;
    	}
    }
    

      

  • 相关阅读:
    Ant利用第三方的task
    读《NoSQL精粹》前三章有感
    opensuse12.3 桌面设置备忘录
    clojure中符号symbols 和变量vars的正确理解
    vim配置clojure开发环境备忘录
    移动端调试痛点?——送你五款前端开发利器
    SyntaxError: missing ) after argument list
    铺满屏幕的布局方法
    剖析height百分比和min-height百分比
    父元素高度设置为min-height,子元素高度设置为100%,但实际上子元素高度你知道是多少吗?(2019-10-26更新)
  • 原文地址:https://www.cnblogs.com/mybug/p/16093931.html
Copyright © 2020-2023  润新知