private static String jedis_ip = null;
private static int jedis_port = 0;
private static String jedis_password = null;
private static JedisPool jedisPool;
static{
Configuration conf = Configuration.getInstance();
jedis_ip = conf.getString("jedis.ip");
jedis_port = conf.getInt("jedis.port");
jedis_password = conf.getString("jedis.password");
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(100);
config.setMaxIdle(30);
config.setMaxWait(100000);
config.setTestOnBorrow(true);
jedisPool = new JedisPool(config, jedis_ip, jedis_port);
}
public static Jedis getJedis(){
Jedis jedis = jedisPool.getResource();
if(jedis_password != null) jedis.auth(jedis_password);
// if(jedis != null)
// jedisPool.returnResource(jedis);
return jedis;
}
public static void releasJedis(Jedis jedis){
if(jedis!=null){
jedis.disconnect();
jedisPool.returnBrokenResource(jedis);
jedis.flushDB();
}
}
public static void main(String[] args) {
Jedis jedis = JedisUtil.getJedis();
jedis.lpush("sjt_message", "撒旦发多发大沙发沙发;垃圾水电开发斯蒂芬阿斯顿范德萨了");
System.out.println(jedis.lpop("sjt_message"));
}
}
注:redis不能在多线程间共享使用,线程不安全。redis异常时,要把reids的connection返回到returnBrokenResource中,释放破坏掉的连接。在reidspool里拿redis的conection没用完就不要返回池里,用完在return池里。