Невозможно подключиться к Redis, RedisConnectionException: невозможно подключиться к {hostName}:6379/:6379*JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно подключиться к Redis, RedisConnectionException: невозможно подключиться к {hostName}:6379/:6379*

Сообщение Anonymous »

Я пытаюсь настроить соединение Redis в моем проекте SpringBoot.
Приложение запускается без каких-либо проблем, но когда я пытаюсь протестировать любую операцию Redis, особенно при вызове контроллера REST, который фактически вызывает репозиторий, я продолжаю сталкиваться с той же ошибкой.
Вот версии, которые я использую в своем pom.xml:

Код: Выделить всё

org.springframework.boot
spring-boot-starter-parent
2.6.6



org.springframework.boot
spring-boot-starter-data-redis

Ниже приведен класс конфигурации, который я использую для подключения к Redis:

Код: Выделить всё

@Configuration
@RequiredArgsConstructor
public class RedisConfigurationBuilder {

private final RedisProperties redisProperties;

@Bean
public RedisConnectionFactory redisConnectionFactory() {
try {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(redisProperties.getHost());
redisStandaloneConfiguration.setPort(redisProperties.getPort());
redisStandaloneConfiguration.setUsername(redisProperties.getUsername());
redisStandaloneConfiguration.setPassword(RedisPassword.of(redisProperties.getPassword()));

LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder().useSsl().and()
.commandTimeout(Duration.ofSeconds(2)).build();

return new LettuceConnectionFactory(redisStandaloneConfiguration, clientConfig);
} catch (Exception e) {
throw new RuntimeException("Failed to configure Redis", e);
}
}

@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(connectionFactory);
template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new GenericJackson2JsonRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
Это класс RedisProperties, который считывает свойства из моего файла application.yml:

Код: Выделить всё

@Component
@Getter
public class RedisProperties {

@Value("${spring.data.redis.host}")
private String host;

@Value("${spring.data.redis.port}")
private int port;

@Value("${spring.data.redis.username}")
private String username;

@Value("${spring.data.redis.password}")
private String password;

}
и, наконец, это мой application.yml:

Код: Выделить всё

spring:
application:
name: "application-name"
data:
redis:
host: {hostName}
port: 6379
username: {myUsername}
password: {myPassword}
ssl:
enabled: true
Примечание. В трассировке стека я заменил настоящее имя хоста на {hostName, просто чтобы скрыть реальный сервер, к которому я подключаюсь. Сообщение об ошибке выглядит следующим образом:

org.springframework.data.redis.RedisConnectionFailureException: невозможно подключиться к Redis; вложенное исключение - io.lettuce.core.RedisConnectionException: невозможно подключиться к {hostName}:6379/ :6379

И это трассировка стека ошибки, которую я продолжаю получать:

org.springframework.data.redis.RedisConnectionFailureException: невозможно подключиться к Редис; вложенным исключением является io.lettuce.core.RedisConnectionException: невозможно подключиться к {hostName}:6379/:6379 в org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1689) в org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1597) по адресу org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1383) по адресу org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) в java.base/java.lang.Thread.run(Thread.java:833) Вызвано: io.lettuce.core.RedisConnectionException: невозможно подключиться к {hostName}/:6379 в io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) в io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) в io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:330) в io.lettuce.core.RedisClient.connect(RedisClient.java:216) по адресу org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115) по адресу java.base/java.util.Optional.orElseGet(Optional.java:364) по адресу org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115) в org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1595) ... Пропущено 77 общих фреймов. Причина: java.lang.IllegalArgumentException: хост имеет порт: {hostName}:6379 в io.lettuce.core.internal.LettuceAssert.isTrue(LettuceAssert.java:222) в io.lettuce.core.internal.HostAndPort.of(HostAndPort.java:57) в io.lettuce.core.SslConnectionBuilder.toHostAndPort(SslConnectionBuilder.java:109) по адресу io.lettuce.core.SslConnectionBuilder.build(SslConnectionBuilder.java:99) по адресу


Подробнее здесь: https://stackoverflow.com/questions/773 ... t-to-hostn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»