使用redisTemplate高并发下连接池满的问题

本文介绍了解决JMeter在进行高并发测试时遇到的Redis连接池不足问题。通过手动释放Redis连接,有效地避免了连接不断积累导致的问题,并调整最大连接数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用JMeter进行高并发测试的时候,发现报错:

org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; 
nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool

连不上redis,是因为连接池不够用了
我用的是redisTemplate来操作redis,而redisTemplate并不会自动释放连接
有一个方法,就是加大最大连接数,但是治标不治本,加到redis.maxIdle=1000了,看似够大了,但连接数一直在增加,迟早会崩

找了很久,最后发现 这个方法可用

在使用redisTemplate的部分用try-catch-finally包起来
在catch-finally中加上,手动断开连接,现在就不会报错了

RedisConnectionUtils.unbindConnection(redisTemplate.getConnectionFactory());

现在设置最大连接数redis.maxIdle=100也没事了
在redis-cli中输入 info clients 现在的连接数大概在二三十左右

参考:
https://blog.youkuaiyun.com/yulio1234/article/details/76417688

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值