redistemplate连接池用完了不需要返回吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redistemplate连接池用完了不需要返回吗相关的知识,希望对你有一定的参考价值。

redistemplate连接池用完了不需要返回吗?答:redistemplate连接池用完了是需要返回换的。 参考技术A 不需要返回
大部分操作是不用。管连接得关闭操作得; 有些特殊操作得单独区分: 比如 scan 命令,1.8版本后得redis考虑到多线程并发得问题,不再主动维护 scan 产生得新连接, 需要手动维护
参考技术B redistemplate连接池用完了不需要返回吗?

大部分操作是不用 管 连接得关闭操作得; 有些特殊操作得单独区分: 比如 scan 命令,1.8版本后得redis考虑到多线程并发得问题,不再主动维护 scan 产生得新连接, 需要手动 维护
参考技术C 连不上redis,是因为连接池不够用了
我用的是redisTemplate来操作redis,而redisTemplate并不会自动释放连接
有一个方法,就是加大最大连接数,但是治标不治本,加到redis.maxIdle=1000了,看似够大了,但连接数一直在增加,迟早会崩

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

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

RedisConnectionUtils.unbindConnection(redisTemplate.getConnectionFactory());
登录后复制
现在设置最大连接数redis.maxIdle=100也没事了
在redis-cli中输入 info clients 现在的连接数大概在二三十左右。

RedisTemplate 获取过期时间的问题

RedisTemplate redisTemplate;
Long seconds = redisTemplate.opsForValue().getOperations().getExpire("redisKey");//此方法返回单位为秒过期时长
// 当seconds==null时 会在事务或管道时

返回值为-1时 此键值没有设置过期日期

返回值为-2时 不存在此键

以上是关于redistemplate连接池用完了不需要返回吗的主要内容,如果未能解决你的问题,请参考以下文章

redistemplate不释放连接导致k8s重启

RedisTemplate 获取过期时间的问题

RedisTemplate常用方法总结

还在只用 RedisTemplate 访问 Redis 吗?这几种方式给你安排上!

Spring Data Redis入门示例:基于RedisTemplate

无法为 Spring 数据 redis 获取 redisTemplate 的连接