jedis开发相关bug(不定期更新)
发布日期:2021-06-29 15:52:20 浏览次数:3 分类:技术文章

本文共 517 字,大约阅读时间需要 1 分钟。

文章目录

远程连接池无法获取Jedis

详细描述

  • redis已经配置允许远程链接
  • 远程可以直接连接 redis服务,如192.168.0.100:6379
  • jedis可以连接到 哨兵服务,默认端口26379
  • 使用Jedis哨兵连接池或者集群无法正常获取Jedis

原因分析

  • 很可能是因为服务端配置哨兵或者集群时使用了本地回环网卡127.0.0.1作为地址,而没有使用外网网卡192.168.xxx.xxx这样的地址
  • 当远程主机和哨兵服务通信时,哨兵会将配置服务时使用的ip直接发送给远程主机,
    • 如果配置文件中的地址是127.0.0.1,返回给远程Jedis的地址也是 127.0.0.1,Jedis会直接使用这个地址构建连接池。最终导致Jedis并没有创建到Redis服务器的连接池,程序发生获取Jeids实例失败,抛出Connect timed out异常
    redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Connect timed out

解决方案

  • 将redis哨兵服务中的地址改成其他网卡地址即可

转载地址:https://console.blog.csdn.net/article/details/115458567 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ubuntu安装firefox后无法播放视频
下一篇:Redis中bind的理解的一个误区

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月09日 00时37分32秒