加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

(2012-08-09 15:48:35)
标签:

redis

pool

jedis

exception

杂谈

分类: redis
java redis client的链接问题,报标题中出现的错误主要原因是初始化了一个redispool,没有执行释放操作,有可能你调用释放的操作,但是你在执行释放执行进行了条件判断,直接return,没有执行到释放的操作,我们遇到的就是这种情况。
调用jedis client的JedisPool.java
定义一个java的RedisClient
public class RedisClient {
    private static JedisPool pool;
    private static String host = "127.0.0.1";
    private static int port = 6379;
    private static int timeout = 60 * 1000;

    private static int maxActive = 100;
    private static int maxIdle = 20;
    private static long maxWait = 1000;

    public static final int EXPIRE_TIME = 86400;

    private static org.slf4j.Logger logger_ = org.slf4j.LoggerFactory
            .getLogger(RedisClient.class.getName());

    public static void initPool() {
        logger_.info("Init Redis Pool [{}]:[{}]", host, port);
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxActive(maxActive);
        config.setMaxIdle(maxIdle);
        config.setMaxWait(maxWait);
        config.setTestOnBorrow(false);
        pool = new JedisPool(config, host, port, timeout);// 线程数量限制,IP地址,端口,超时时间
    }

    public static Jedis getJedis() {
        if (pool == null)
            initPool();
        return pool.getResource();
    }
    
    public static void returnJedis(Jedis jedis) {
        if (jedis != null)
            pool.returnResource(jedis);
    }
}
  

------------------------------------------------------------------------------------
Jedis jedis = RedisClient.getJedis();
RedisClient.returnJedis()



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有