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

如何用Lettuce集群客户端连接启用集群的Azure Redis Cache实例?

问题分析与解决方案

你的代码存在两处关键问题,导致无法连接Azure Redis Cluster:

1. 未启用SSL加密连接

Azure Redis Cache默认强制要求SSL加密连接,你的代码使用普通redis://未加密协议,而你提供的端口14489大概率是SSL端口,必须启用SSL才能建立有效连接。

2. 未适配Azure Redis Cluster的拓扑访问限制

Azure Redis Cluster的内部节点使用私有IP地址,外部客户端无法直接访问这些节点。Lettuce默认会自动获取集群拓扑并尝试连接所有节点,这会因无法访问私有节点而触发报错。

修正后的代码

// 启用SSL并配置正确连接参数
RedisURI redisUri = RedisURI.Builder.redis("redis-xxxxxxxxx.us-east-1-mz.ec2.cloud.rlrcp.com", 14489)
        .withPassword("password") // 注意修正原代码中的拼写错误passwaord
        .withSsl(true) // 关键:启用SSL加密
        .build();

// 配置Lettuce禁用自动拓扑刷新,避免尝试连接私有节点
RedisClusterClient clusterClient = RedisClusterClient.create(redisUri);
ClusterTopologyRefreshOptions topologyOptions = ClusterTopologyRefreshOptions.builder()
        .disablePeriodicRefresh()
        .disableAdaptiveRefreshTrigger()
        .build();
clusterClient.setOptions(ClusterClientOptions.builder()
        .topologyRefreshOptions(topologyOptions)
        .build());

StatefulRedisClusterConnection<String, String> connection = clusterClient.connect();

额外检查项

  • 确认Azure Redis Cache的非SSL端口是否已开启(默认关闭),若使用SSL端口则必须保持withSsl(true)配置。
  • 验证防火墙和网络安全组规则,确保客户端所在网络能访问Azure Redis Cache的公网地址与端口。

内容的提问来源于stack exchange,提问作者Kapilraaj Perinpanayagam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:07:10