Java Redis 连接池 Jedis 工具类
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class MyJedisPool { private final static Logger logger = LoggerFactory.getLogger(MyJedisPool.class); private static JedisPool readPool = null; private static JedisPool writePool = null; //静态代码初始化池配置 static { try{ Properties props = new Properties(); InputStream in = MyJedisPool.class.getResourceAsStream("/redis.properties"); props.load(in); //创建jedis池配置实例 JedisPoolConfig config = new JedisPoolConfig(); //设置池配置项值 config.setMaxTotal(Integer.valueOf(props.getProperty("jedis.pool.maxActive"))); config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle"))); config.setMaxWaitMillis(Long.valueOf(props.getProperty("jedis.pool.maxWait"))); config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow"))); config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn"))); //根据配置实例化jedis池 readPool = new JedisPool(config, props.getProperty("redisReadURL"), Integer.valueOf(props.getProperty("redisReadPort"))); writePool = new JedisPool(config, props.getProperty("redisWriteURL"), Integer.valueOf(props.getProperty("redisWritePort"))); }catch (IOException e) { logger.info("redis连接池异常",e); } } /**获得jedis对象*/ public static Jedis getReadJedisObject(){ return readPool.getResource(); } /**获得jedis对象*/ public static Jedis getWriteJedisObject(){ return writePool.getResource(); } /**归还jedis对象*/ public static void returnJedisOjbect(Jedis jedis){ if (jedis != null) { jedis.close(); } } }
import redis.clients.jedis.Jedis; import java.util.Set; public class RedisUtils { /** * 获取hash表中所有key * @param name * @return */ public static Set<String> getHashAllKey(String name){ Jedis jedis = null; try { jedis = MyJedisPool.getReadJedisObject(); return jedis.hkeys(name); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 从redis hash表中获取 * @param hashName * @param key * @return */ public static String getHashKV(String hashName,String key){ Jedis jedis = null; try { jedis = MyJedisPool.getReadJedisObject(); return jedis.hget(hashName, key); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 删除hash表的键值对 * @param hashName * @param key */ public static Long delHashKV(String hashName,String key){ Jedis jedis = null; try { jedis = MyJedisPool.getWriteJedisObject(); return jedis.hdel(hashName,key); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 存放hash表键值对 * @param hashName * @param key * @param value */ public static Long setHashKV(String hashName,String key,String value){ Jedis jedis = null; try { jedis = MyJedisPool.getWriteJedisObject(); return jedis.hset(hashName,key,value); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 删除键值对 * @param k * @return */ public static Long delKV(String k){ Jedis jedis = null; try { jedis = MyJedisPool.getWriteJedisObject(); return jedis.del(k); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 放键值对 * 永久 * @param k * @param v */ public static String setKV(String k, String v) { Jedis jedis = null; try { jedis = MyJedisPool.getWriteJedisObject(); return jedis.set(k, v); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 放键值对 * * @param k * @param v */ public static String setKV(String k,int second, String v) { Jedis jedis = null; try { jedis = MyJedisPool.getWriteJedisObject(); return jedis.setex(k,second, v); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } /** * 根据key取value * * @param k * @return */ public static String getKV(String k) { Jedis jedis = null; try { jedis = MyJedisPool.getReadJedisObject(); return jedis.get(k); }catch (Exception e){ e.printStackTrace(); }finally { MyJedisPool.returnJedisOjbect(jedis); } return null; } }