JedisPool的使用(连接池)

在不同的线程中使用相同的Jedis实例会发生并发错误。但是创建太多的Jedis实例也不好,因为这意味着会建立很多Socket连接,也会导致不必要的错误发生。单一Jedis实例不是线程安全的。为了避免这些问题,可以使用JedisPool, JedisPool是一个线程安全的网络连接池。可以用JedisPool创建一些可靠Jedis实例,可以从池中拿到Jedis的实例。 这种方式可以解决那些问题并且会实现高效的性能

1)创建JedisPool

	JedisPool pool = new JedisPool();
	或者
	JedisPool pool = new JedisPool("127.0.0.1",6379);
	或者
	JedisPoolConfig config = new JedisPoolConfig();  
	//设置最大连接数
	config.setMaxTotal(80);
	//设置最大空闲数
	config.setMaxIdle(20);
	//设置超时时间
	config.setMaxWaitMillis(3000);
	JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379); 

2)使用JedisPool获得Jedis对象

	JedisPool pool = new JedisPool();
	Jedis jedis = pool.getResource();

3)从JedisPool获得的Jedis对象再使用后调用close方法即可

	通过查看源码可知,close方法内部会把这个jedis对象进回收
	public void close(){
		if (this.dataSource != null) {
			if (this.client.isBroken())
				this.dataSource.returnBrokenResource(this);
			else
				this.dataSource.returnResource(this);
		}else{
			this.client.close();
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值