❌ Error Handling

Spring - Redis System Exception

신건우 2023. 4. 15. 13:35

❌ Spring - Redis System Exception

원인

  • RedisConfig 내의 Cluster Connect Timeout 시간의 잘못된 설정으로 인한 에러

해결

  • ResdisProperties내에 세션 타임아웃필드 지정
  • connectTimeout()내부 로직에 시간값을 가져오는곳에 올바른 시간값 기입 수정
@Component
@Getter @Setter
@ConfigurationProperties("spring.redis")
public class RedisProperties {
    private String host;
    private int port;
    @Getter
    @Value("${jwt.refresh-token-expiration-minutes}")
    private int refreshTokenExpirationMinutes;
    private long sessionTime = 1000000000; // 추가
}
    @Bean
    public RedisConnectionFactory factory() {
        RedisClusterConfiguration configuration = new RedisClusterConfiguration();
        configuration.clusterNode(redisHost, redisPort);

        LettuceClientConfiguration clientConfiguration = LettuceClientConfiguration.builder()
                .clientOptions(ClientOptions.builder()
                        .socketOptions(SocketOptions.builder()
                                .connectTimeout(Duration.ofMillis(redisProperties.getSessionTime())).build())
                        .build())
                .commandTimeout(Duration.ofSeconds(redisProperties.getSessionTime())).build();
        return new LettuceConnectionFactory(configuration, clientConfiguration);
    }