트러블슈팅

0531 prod 환경에서 redis 관련 500오류

sowakemeup 2025. 6. 6. 15:57

prod 환경에서 redis 관련 500 오류

상황:

local 개발환경에서는 redis 관련 설정을 yml파일에서만 진행했는데
prod 개발환경에서 테스트 할때 redis refresh 토큰 발급 단계에서 오류 발생

 

 

해결:

버전에 따라 차이는 있지만, redis username + password를 사용하려면, local 환경에서 root를 사용할때와 달리 RedisConfig 파일을 추가해 줘야 한다

따라서, package -----.----.config; 에 RedisConfig 파일을 추가하면서 해결되었다.

 

package ----.----.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;

@Configuration
@Profile("prod")
public class RedisConfig {
    @Value("${spring.data.redis.host}") String REDIS_HOST;
    @Value("${spring.data.redis.port}") Integer REDIS_PORT;
    @Value("${spring.data.redis.username}") String REDIS_USERNAME;
    @Value("${spring.data.redis.password}") String REDIS_PASSWORD;

    @Bean
    public LettuceConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
        config.setHostName(REDIS_HOST);
        config.setPort(REDIS_PORT);
        config.setUsername(REDIS_USERNAME);
        config.setPassword(REDIS_PASSWORD);

        return new LettuceConnectionFactory(config);
    }
}

 

 

추가로, mongodb가 mongo를 사용하지 않는 userService에서도 로드되는 점도 발견했는데, 프로젝트 루트에 의존성이 들어가 있어서 같이 실행되고 있었던 것이었다.