redis pool

Redis Pool--Java 

配置文件

#redis conf

ADDR=127.0.0.1
PORT=6379
AUTH=

#session timeout
TIMEOUT=1000  

MAX_ACTIVE=500
MAX_IDLE=200
MIN_IDLE=100
MAX_WAIT=1000

 

RedisPool.java

  1 public final class RedisPool {
  2 
  3     private static JedisPool jedisPool = null;
  4 
  5     // 最大连接数:可同时建立的最大链接数
  6     private static int max_acti;
  7 
  8     // 最大空闲数:空闲链接数大于maxIdle时,将进行回收
  9     private static int max_idle;
 10 
 11     // 最小空闲数:低于minIdle时,将创建新的链接
 12     private static int min_idle;
 13 
 14     // 最大等待时间:单位ms
 15     private static int max_wait;
 16 
 17     private static String addr;
 18 
 19     private static int port;
 20 
 21     private static String auth;
 22 
 23     // session timeout by seconds
 24     private static int session_timeout;
 25 
 26     private RedisPool() {
 27     }
 28 
 29     /**
 30      * get properties and init RedisPool
 31      */
 32     static {
 33         Properties pps = new Properties();
 34         InputStream in;
 35         try {
 36             in = new BufferedInputStream(new FileInputStream("src"+File.separator+"conf"+File.separator+"redispool.properties"));
 37             pps.load(in);
 38 
 39             addr = pps.getProperty("ADDR");
 40             auth = pps.getProperty("AUTH");
 41             port = Integer.parseInt(pps.getProperty("PORT"));
 42             session_timeout = Integer.parseInt(pps.getProperty("TIMEOUT"));
 43             max_acti = Integer.parseInt(pps.getProperty("MAX_ACTIVE"));
 44             max_idle = Integer.parseInt(pps.getProperty("MAX_IDLE"));
 45             min_idle = Integer.parseInt(pps.getProperty("MIN_IDLE"));
 46             max_wait = Integer.parseInt(pps.getProperty("MAX_WAIT"));
 47 
 48             JedisPoolConfig config = new JedisPoolConfig();
 49             config.setMaxActive(max_acti);
 50             config.setMaxIdle(max_idle);
 51             config.setMaxWait(max_wait);
 52             config.setMinIdle(min_idle);
 53             jedisPool = new JedisPool(config, addr, port, 1000, auth);
 54 
 55         } catch (Exception e) {
 56             throw new RuntimeException("jedisPool init error" + e.getMessage());
 57         }
 58 
 59     }
 60 
 61     /**
 62      * get jedis resource
 63      */
 64     public synchronized static Jedis getJedis() {
 65         if (jedisPool != null) {
 66             return jedisPool.getResource();
 67         } else {
 68             throw new RuntimeException("jedisPool is null");
 69         }
 70     }
 71 
 72     /**
 73      * get value map by key
 74      * 
 75      * @param key
 76      * @return map
 77      */
 78     public static Map<String, String> getHashValue(String key) {
 79         Jedis jedis = getJedis();
 80         Map<String, String> map = new HashMap<String, String>();
 81         Iterator<String> iter = jedis.hkeys(key).iterator();
 82         while (iter.hasNext()) {
 83             String mkey = iter.next();
 84             map.put(mkey, jedis.hmget(key, mkey).get(0));
 85         }
 86         jedisPool.returnResource(jedis);
 87         return map;
 88     }
 89 
 90     /**
 91      * set value by key and map value
 92      * 
 93      * @param key
 94      * @param hash
 95      */
 96     public static void setHashValue(String key, Map<String, String> hash) {
 97         Jedis jedis = getJedis();
 98         jedis.hmset(key, hash);
 99         jedis.expire(key, session_timeout);
100         jedisPool.returnResource(jedis);
101     }
102 
103     /**
104      * remove value by key
105      * 
106      * @param key
107      */
108     public static void remove(String key) {
109         Jedis jedis = getJedis();
110         jedis.del(key);
111         jedisPool.returnResource(jedis);
112     }
113 
114     /**
115      * expire session time to session_timeout
116      * 
117      * @param key
118      */
119     public static void expire(String key) {
120         Jedis jedis = getJedis();
121         jedis.expire(key, session_timeout);
122         jedisPool.returnResource(jedis);
123     }
124 
125     /**
126      * return jedis resource
127      */
128     public static void returnResource(final Jedis jedis) {
129         if (jedis != null) {
130             jedisPool.returnResource(jedis);
131         }
132     }
133 
134 }

 

posted @ 2016-08-13 10:50  dahuandahuan  阅读(589)  评论(0编辑  收藏  举报