Приложение запускается без каких-либо проблем, но когда я пытаюсь протестировать любую операцию Redis, особенно при вызове контроллера REST, который фактически вызывает репозиторий, я продолжаю сталкиваться с той же ошибкой.
Вот версии, которые я использую в своем pom.xml:
Код: Выделить всё
org.springframework.boot
spring-boot-starter-parent
2.6.6
org.springframework.boot
spring-boot-starter-data-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;
}
}
Код: Выделить всё
@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;
}
Код: Выделить всё
spring:
application:
name: "application-name"
data:
redis:
host: {hostName}
port: 6379
username: {myUsername}
password: {myPassword}
ssl:
enabled: true
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
Мобильная версия