All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jeesuite.cache.redis.standalone.JedisStandaloneProvider Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
/**
 * 
 */
package com.jeesuite.cache.redis.standalone;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.jeesuite.cache.redis.JedisProvider;

import redis.clients.jedis.BinaryJedis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.exceptions.JedisException;

/**
 * 标准(单服务器)redis服务提供者
 * @description 
* @author vakin * @date 2015年04月23日 */ public class JedisStandaloneProvider implements JedisProvider{ protected static final Logger logger = LoggerFactory.getLogger(JedisStandaloneProvider.class); public static final String MODE = "standalone"; private ThreadLocal context = new ThreadLocal<>(); private JedisPool jedisPool; private String groupName; public JedisStandaloneProvider(String groupName,JedisPoolConfig jedisPoolConfig, String[] servers, int timeout, String password, int database, String clientName) { super(); this.groupName = groupName; String[] addrs = servers[0].split(":"); jedisPool = new JedisPool(jedisPoolConfig, addrs[0], Integer.parseInt(addrs[1].trim()), timeout, password, database, clientName); } public Jedis get() throws JedisException { Jedis jedis = context.get(); if(jedis != null)return jedis; try { jedis = jedisPool.getResource(); } catch (JedisException e) { if(jedis!=null){ jedis.close(); } throw e; } context.set(jedis); if(logger.isTraceEnabled()){ logger.trace(">>get a redis conn[{}],Host:{}",jedis.toString(),jedis.getClient().getHost()); } return jedis; } @Override public BinaryJedis getBinary() { return get(); } public void release() { Jedis jedis = context.get(); if (jedis != null) { context.remove(); jedis.close(); if(logger.isTraceEnabled()){ logger.trace("<




© 2015 - 2025 Weber Informatics LLC | Privacy Policy