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 访问 Redis 吗?这几种方式给你安排上!