You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java Jedis库连接Azure Redis Cache报连接超时如何解决

问题原因及解决方案

你遇到的连接超时问题主要由以下几个常见配置错误导致,按排查优先级排序:

  • 端口与SSL配置不匹配:你在JedisShardInfo构造函数的第三个参数传了true,代表启用SSL连接,但Azure Redis的SSL连接默认端口为6380,你填的6379是非SSL端口,两者不匹配会直接导致连接失败。如果确实需要使用6379端口,需要先到Azure Redis控制台的「高级设置」中开启「允许非SSL端口」选项,同时将构造函数的SSL参数改为false。
  • 防火墙白名单未配置:Azure Redis默认禁止所有外部IP访问,需要到Azure Redis控制台的「网络」设置中,将运行代码的设备公网IP添加到白名单列表中。
  • 网络出站端口被限制:检查当前网络环境的防火墙/安全组规则,是否允许访问6379/6380的出站请求,可以用命令telnet xxxxx-azure.redis.cache.windows.net 6380测试连通性,如果telnet失败说明网络层面不通,先排查网络规则。
  • 超时配置过短:跨地域访问Azure Redis时默认的连接超时可能不足,可以手动设置更长的连接超时和读取超时时间。
  • 访问密钥错误:检查填写的密码是否和Azure Redis控制台「访问密钥」页面的主键/次键完全一致,不要包含多余的空格或特殊字符。

修正后的代码示例

// 启用SSL的标准配置,端口改为6380
JedisShardInfo shardInfo = new JedisShardInfo("xxxxx-azure.redis.cache.windows.net",6380, true);
// 设置连接超时和读取超时,单位为毫秒
shardInfo.setConnectionTimeout(5000);
shardInfo.setSoTimeout(5000);
shardInfo.setPassword("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
Jedis jedis = new Jedis(shardInfo);

String pingResponse = jedis.ping();
System.out.println("ping should return pong" + pingResponse);

内容的提问来源于stack exchange,提问作者ss-ss-v1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:27:04