package qa.qcri.aidr.trainer.api.Jedis; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Value; import qa.qcri.aidr.trainer.api.util.TrainerConfigurationProperty; import qa.qcri.aidr.trainer.api.util.TrainerConfigurator; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * Created with IntelliJ IDEA. * User: jilucas * Date: 9/30/13 * Time: 1:49 PM * To change this template use File | Settings | File Templates. */ public class JedisDataStore { private static TrainerConfigurator configProperties = TrainerConfigurator.getInstance(); static JedisPool jedisPool; private static Logger logger = Logger.getLogger(JedisDataStore.class); /* REDIS */ public static Jedis getJedisConnection() throws Exception { try { configProperties.getProperty(TrainerConfigurationProperty.REDIS_HOST); if (jedisPool == null) { jedisPool = new JedisPool(new JedisPoolConfig(), configProperties.getProperty(TrainerConfigurationProperty.REDIS_HOST), Integer.valueOf(configProperties.getProperty(TrainerConfigurationProperty.REDIS_PORT))); } return jedisPool.getResource(); } catch (Exception e) { logger.error("Could not establish Redis connection. Is the Redis server running?",e); throw e; } } public static void close(Jedis resource) { jedisPool.returnResource(resource); } }