生菜 - Java - AWS ElastiCache - Redis - 连接超时

Lettuce - Java - AWS ElastiCache - Redis - Connection Timeout

我对 Redis 和 AWS ElastiCache 服务完全陌生。我创建了一个 Redis 集群 (5.0.6 v),其中包含 1 个分片、2 个节点、传输中无加密、静态无加密、无 Redis 身份验证和禁用多可用区。

我可以看到主端点,Reader Enpoint 并单击集群,可以看到 2 个不同于主端点和 reader 端点的节点端点。

我将 Lettuce 与普通 maven 项目一起使用进行连接,但出现连接超时。我尝试了上述端点的所有组合,但没有成功。我已将我的 ec2instance(我在 运行 代码中)添加到 ElastiCache 子网组。仍然没有运气。

使用的代码:

RedisClusterClient clusterClient = RedisClusterClient.create(Arrays.asList(node1, node2));
StatefulRedisClusterConnection<String, String> connection = clusterClient.connect();
RedisAdvancedClusterAsyncCommands<String, String> asyncCommands = connection.async();

pom(仅依赖):

 <dependency>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
            <version>5.2.2.RELEASE</version>
 </dependency>

我有纯 java-maven 的用例,没有像 spring boot

这样的框架

感谢您的帮助。

如果有人正在寻找连接到 ElastiCache 主服务器的类似问题,这可能会有所帮助: 修改安全组入站流量并解决以下客户端创建模型:

RedisURI upstreamUri = RedisURI.Builder.redis(primayNodeUrl, 6379).build();
RedisClient redisClient = RedisClient.create();
StatefulRedisMasterReplicaConnection<String, String> connection = 
MasterReplica.connect(
                redisClient,
                StringCodec.UTF8,
                upstreamUri);
connection.setReadFrom(ReadFrom.REPLICA_PREFERRED);
RedisAsyncCommands<String, String> asyncCommands = connection.async();