Search Results for 'Redis'

1 POSTS

  1. 2018.01.11 JAVA Redis Pool

JAVA Redis Pool

Posted 2018. 1. 11. 23:49

싱글톤

 

package redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisClient {
 JedisPool jedisPool;
 JedisPoolConfig poolConfig;
 
 private static RedisClient redisClient = null;
 private RedisClient() {
  poolConfig = new JedisPoolConfig();
  poolConfig.setMinIdle(5);  
  poolConfig.setMaxActive(1000); 
  poolConfig.setMaxWait(5000); // long
  jedisPool = new JedisPool(poolConfig, "127.0.0.1", 50001);
 }
 
 public static RedisClient getInstance() {
  if(redisClient == null) {
   redisClient = new RedisClient();
  }
  
  return redisClient;
 }
 
 public void returnResource(Jedis client) {
  jedisPool.returnResource(client);
 }
 
 public void testRedis() {
//  Jedis jedis = null;
//  try {
//   jedis = jedisPool.getResource();
//   String str = jedis.get("key1");
//   System.out.println(str);
//  } catch(Exception e) {
//   e.printStackTrace();
//  } finally {
//   if(jedis != null) {
//    returnResource(jedis);
//   } 
//  }
 }
}

 

사용 할 곳에서

RedisClient redisClient = RedisClient.getInstance();

로 받아와서

redisClient.testRedis() 호출 해서 쓰면 된다.

예전 버전이라 jedis-2.1.0 jar 파일을 사용해야 한다.

 

요즘버전은 바뀌어서 config쪽에 몇몇 함수가 사라졌다.

returnResource도 없어져서 요즘버전을 사용하면 pool에서 받은놈을 close 해주면 된다.

Jedis jedis = pool.getResource();

jedis... 사용 후

jedis.close() 하면됨.

나는 옛날버전이라 쓰고나서 returnResource로 리턴시켜 준거고.