使用jedis时会"偶尔"产生的一个异常,可能是jedis的bug,大家看一下.

发布于 2021-11-22 02:24:59 字数 237 浏览 690 评论 12

org.springframework.dao.DataAccessResourceFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

使用的是:jedis-2.1.0.jar

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

梦中楼上月下 2021-11-25 03:43:23

你说的那种情况,由于设计不正确导致的问题,这边也曾经出现过。曾经一个哥们把一个很大的list序列化成二进制存到redis中,然后,一次性的取出这个对象再for循环从这个list中取出一条数据。这个是不是很崩溃啊,特别有意思吧。

而且在不注重设计的公司里这种问题的确很常见,或者说设计了但程序员偏偏特立独行,不按设计来,自己折腾份出来。结果么,也许差强人意吧。O(∩_∩)O~

情栀口红 2021-11-25 03:43:21

实际上,任何现象的背后都有其存在的原因。技术者作为存在的根本因素之一就是发掘这些根本问题并且解决掉这些问题。这算是技术者的职责吧

一笔一画续写前缘 2021-11-25 03:43:20

不是设计的问题,是编码的问题。理论上说,也应当建立一套redis的编码规范。比如:将同等操作进行分批处理,而不是单个处理。

虐人心 2021-11-25 03:43:11

我们最近出的redis问题就是一个哥们用了一大堆的get方法,一个页面redis跟服务器端交互近200次,太频繁了。后来改成mget,pipeline的方式明显好多了 要别的页面要是跟redis交互50次会不会出问题呢?会不会和你们设计有问题

悲喜皆因你 2021-11-25 03:43:08

可能需要找到连接为什么没释放;

比如:程序里有将连接返回池中吗?

你可以试试分析java core、gc信息、应用日志、系统状态(cpu、内存、io、磁盘)等,看看哪些java进程比较忙。这些比较忙的java进程中哪些线程占用cpu的,这些占用cpu的线程都在干什么,做什么操作。线程上下文切换频繁不频繁,中断多不多。

接着,再看看网络有没有问题,redis服务器忙不忙等等。可以考虑先排除网络问题和redis服务器的问题。接着,判断应用中忙的线程到底在忙什么,是哪些场景忙,这些场景中是否redis有使用不当的地方等。

只要花点心思,认真排查,问题总能解决掉的。

我们最近出的redis问题就是一个哥们用了一大堆的get方法,一个页面redis跟服务器端交互近200次,太频繁了。后来改成mget,pipeline的方式明显好多了。

自己多分析分析,实在分析不出来再出来发帖问吧。

剑心龙吟 2021-11-25 03:40:28

你没有把对象放回对象池 

val result = pool.getResource()
      try {
        return f(result)
      } catch {
        case e: Exception =>
          pool.returnBrokenResource(result)
          NetTool.sendErrorMailSafe(e);
          fail
      } finally {
        pool.returnResource(result)
      }

墨洒年华 2021-11-25 03:40:18

我遇到更坑的,不能使用64位编译的服务器

本王不退位尔等都是臣 2021-11-25 03:38:14

只能调大点连接池活动个数了

百思不得你姐 2021-11-25 00:58:24

jedis自己维护的pool,然后自己告诉自己 连接没有资源了,这正常么

狼亦尘 2021-11-24 19:12:26

这不是说连接池没有可用资源了吗

月亮是我掰弯的 2021-11-24 16:50:31

嗯,认同的

因为看清所以看轻 2021-11-24 05:56:50

说了这么多,只想告诉你,做事不可以马虎。从根本上找到问题并且解决问题才是最佳实践!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文