【问题标题】:Cannot connect to redis using spring and lettuce无法使用弹簧和生菜连接到redis
【发布时间】:2021-03-31 09:55:13
【问题描述】:

我正在努力寻找这里可能出现的问题;需要帮忙。 我正在使用 spring-data-redis 2.4.1

RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration()
redisStandaloneConfiguration.setHostname(hostname)
redisStandaloneConfiguration.setPort(6379)
redisStandaloneConfiguration.setPassword("password")

然后我创建lettuceClientConfigurationBuilder 并指定clientName

然后我使用lettuceClientConfigurationredisStandaloneConfiguration 创建ClientConnectionFactory

但是,当我们在连接工厂上调用getConnection() 时,我们得到

WrongPass Invalid username-password pair

同一组用户名-密码可在 cmd 提示符下与 Redis-CLI 一起使用。

我在 java 应用程序中的使用方式有问题吗?

任何解决此问题的指针/提示将不胜感激。

【问题讨论】:

  • 用户名设置在哪里?

标签: spring-boot spring-data-redis redis-cluster


【解决方案1】:

Spring Boot为你配置LettuceConnectionFactory,你可以在application.properties文件中指定连接参数。

spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=yourPassword
spring.redis.timeout=60000

如果您想以编程方式执行此操作,请在 application.properties 中设置 spring.redis.password 并尝试以下操作:

@Configuration
class AppConfig {

  @Bean
  public LettuceConnectionFactory redisConnectionFactory() {

    return new LettuceConnectionFactory(new RedisStandaloneConfiguration("server", 6379));
  }
}

【讨论】:

    【解决方案2】:

    我将用户名误认为是 LettuceClientConfigurationBuilder 上设置的客户端名称,但必须在 redisstandaloneconfiguratuon 上指定用户名。 这对我有用;另请注意,acl 是在 lettuce 2.4.1 之后才引入的,因此任何以前的版本都不起作用。

    redisStandaloneConfiguration.setUsername(connectionFactoryConfigs.getUserName());

    【讨论】:

      猜你喜欢
      • 2015-02-06
      • 2016-10-18
      • 2019-05-18
      • 2021-02-15
      • 1970-01-01
      • 2011-05-19
      • 2013-11-17
      • 2017-11-11
      相关资源
      最近更新 更多