当前位置: 首页 > 知识库问答 >
问题:

连接到aws redis elasticache的客户端配置

易星纬
2023-03-14

我启用了在集群模式下配置的aws redis弹性缓存,并且我有一个主副本和一个副本(都位于不同的可用性区域)。我正在使用Spring RedisTemboard以及LettuceClientConfiguration,但当我尝试写入redis时,会出现以下错误:-

[超文本传输协议-Nio-8080-exec-5]ERRORc.a.w.c.auth.登录-身份验证失败:执行中出错;嵌套异常io.lettuce.core.##########################################################################################################################################################-12/>LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)在org.springframework.data.redis.PassouExceptionTranslationStrategy.translate(PassouExceptionTranslationStrategy.java:44)在org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStratex. java: 42)在org. springframework. data. rediss. link. lettuce。LettuceConnection. transtLettuceAccessExc0019(LettuceConnection. java: 268)at org. springframework. data. rediss. link. lettuce。在org. springframework. data. rediss. link. lettuceAccessExc0019(LettuceHash命令. java: 471)。在org. springframework. data. rediss. link上获取(LettuceHash命令. java: 172)。DefaultedRedisConnection. hget(DefaultedRedisConnection. java: 926)在org. springframework. data. redis. core。DefaultHashoperations. lambda$get0美元(DefaultHashoperations. java: 53)在org. springframework. data. rediss. core。在org. springframework. data. rediss. core执行(RedisTemplate. java: 224)。java模板

我使用aws redis配置endpointurl通过spring连接到redis,并通过属性文件提供主机名:-

@配置公共类RedisCacheConfig{

private static Logger logger = LoggerFactory.getLogger(RedisCacheConfig.class);

@Value("${redishost:localhost}")
private String host;

@Value("${redisport:6379}")
private int port;

@Value("${redisauth:}")
private String redisauth;

@Bean
public LettuceConnectionFactory redisConnectionFactory() {
    RedisStandaloneConfiguration conf = new RedisStandaloneConfiguration(host, port);
    if (!StringUtils.isEmpty(redisauth)) {
        logger.info("Setting redis auth");
        conf.setPassword(redisauth);
        LettuceClientConfiguration clientConf = LettuceClientConfiguration.builder().useSsl().disablePeerVerification().build();
        return new LettuceConnectionFactory(conf, clientConf);
    } else {
        return new LettuceConnectionFactory(conf);
    }
}

@Bean
public RedisTemplate<String, ?> redisTemplate() {
    RedisTemplate<String, ?> template = new RedisTemplate<>();
    template.setConnectionFactory(redisConnectionFactory());
    return template;
}

@Bean
public CacheService getService() {
    return new RedisCacheService();
}

}

我相信莴苣正在自动发现集群并尝试写入副本节点。

有人能帮助我如何使用莴苣客户端与aws redis集成吗?

共有1个答案

谷梁昊空
2023-03-14

您正在使用RedisStandaloneConfiguration,它告诉莴苣尝试以单一模式而不是群集模式运行redis。对于集群模式,您应该使用如下的RedisClusterConfiguration-

 类似资料:
  • 问题内容: 我使用nodejs(net module )在客户端和服务器之间创建了tcp连接。服务器正在侦听已经预定义的端口,而客户端正在连接到该端口。 据我了解,客户端的端口是由节点动态分配的?那是对的吗? 哪种算法节点用于为客户端分配“随机”端口?它是如何工作的,是由节点还是由操作系统决定的? 是否可以定义将要使用哪个客户端的静态端口?是否可以定义供客户端使用的端口范围? 注意:我想我之前在找

  • 我正在尝试在GKE上部署gRPC,我遵循了本教程-https://cloud.google.com/solutions/exposing-grpc-services-on-gke-using-envoy-proxy 我完成了所有工作,但我似乎无法在golang上运行gRPC,而我可以在grpcurl上运行它。 有人有什么想法吗?

  • 在Netty中创建客户端连接时,我有一个问题。 这里,为什么我们没有一个bind方法,将通道绑定到发起客户端连接的端口(在客户端)?我们唯一需要提供的就是给出服务器地址和端口如下: 这是在客户端还是服务器端创建了一个新的通道?此通道绑定在客户端的哪个端口? 我们在执行服务器端引导时进行绑定,如下所示 我很困惑,不明白客户端从哪个端口向服务器发送数据,使用的是什么通道?

  • 我无法获取上一个已知位置。我已经在谷歌控制台中启用了地理编码API和谷歌地点API的Android。我在清单文件中添加了 API 密钥: 但我不断在控制台中收到一条消息:“无法连接到Google API客户端:连接结果{状态代码=API_UNAVAILABLE,分辨率=空}” 更新 我使用谷歌示例 onConnected和onConnectionFailed不调用。 而且我也使用Android反应

  • 我试图编写一个简单的spark应用程序,当我在本地运行它时,它可以将主程序设置为

  • 我正在尝试创建一个简单的Spring Cloud Config服务器/客户端设置,并松散地遵循留档: https://cloud.spring.io/spring-cloud-config/reference/html/ 到目前为止,我已经实现了一个似乎工作正常的服务器,即在调用相应endpoint时返回正确的属性值: 然而,我没有任何运气让客户端连接到服务器。我做了以下工作: 添加了依赖项: 但