有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java AWS ElastiCache Redis连接超时

我对Redis和AWS ElastiCache服务完全陌生。我创建了一个Redis集群(5.0.6V),其中有1个碎片,2个节点,传输中没有加密,静止时没有加密,没有Redis身份验证,并且禁用了多AZ

我可以看到主端点,读卡器端点,点击集群,可以看到两个不同于主端点和读卡器端点的节点端点

我正在使用带有普通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这样的框架

谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

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

    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();