Redis 연결 문제를 해결하기 위한 단계들을 정리하면 다음과 같습니다.
docker-compose.yml 파일에서 Redis 서비스 이름이 redis로 설정되어 있으므로, Spring Boot에서 Redis에 연결할 때도 이 이름을 사용하는지 확인해보세요.
예를 들면, application.properties 파일에서 Redis 설정을 아래와 같이 확인해보세요.
spring.data.redis.host=redis spring.data.redis.port=6379 spring.data.redis.password=0000
Redis 호스트가 localhost가 아니라 redis로 되어 있어야 합니다.즉, docker-compose 파일에서 정의한 서비스 이름과 일치해야 합니다.
Docker Compose 파일에 my-network라는 커스텀 네트워크를 사용 중인데, 모든 서비스(app, redis, db)가 동일한 네트워크에 있어야 합니다.
아래 명령어로 모든 컨테이너가 같은 네트워크에 연결되어 있는지 확인하세요.
docker network inspect my-network
출력된 정보에 app, redis, db 서비스가 모두 포함되어 있는지 확인해보시기 바랍니다.
Spring Boot 앱 컨테이너에서 Redis에 수동으로 연결할 수 있는지 확인해보세요. 확인하려면, 먼저 아래와 같이 앱 컨테이너에 접속합니다.
docker exec -it app /bin/sh
그런 다음 redis-cli를 사용해 Redis에 연결 시도해보세요.
redis-cli -h redis -p 6379
만약 연결이 성공하면 Redis는 올바르게 동작하고 있기 때문에 문제는 Spring Boot 설정일 수 있습니다. 만약 연결이 실패한다면 네트워크 또는 Redis 컨테이너에 문제가 있을 수 있습니다.
Redis가 올바르게 포트 6379에서 실행되고 있는지 확인하려면 Redis 컨테이너의 로그를 확인해보세요.
docker logs redis
로그에서 Redis가 정상적으로 시작되고 올바르게 포트를 열었는지 확인해보세요.
Redis에 비밀번호(--requirepass 0000)가 있는 것 같은데, Spring Boot 애플리케이션에서 비밀번호가 정확히 설정되어 있는지 확인해보세요.만약 Spring Boot가 비밀번호 없이 연결을 시도한다면 Redis는 연결이 거부됩니다.
확인을 위해 잠시 Redis 비밀번호를 비활성화해서 접속이 되는지 테스트해볼 수도 있습니다.
마지막으로, Spring Boot 애플리케이션의 로그를 확인하여 Redis 연결 실패에 대한 자세한 오류 메시지를 확인해보시기 바랍니다.
Redis 연결 문제를 해결하기 위한 단계들을 정리하면 다음과 같습니다.
application.properties 또는 application.yml 파일 확인
docker-compose.yml 파일에서 Redis 서비스 이름이 redis로 설정되어 있으므로,
Spring Boot에서 Redis에 연결할 때도 이 이름을 사용하는지 확인해보세요.
예를 들면, application.properties 파일에서 Redis 설정을 아래와 같이 확인해보세요.
spring.data.redis.host=redis spring.data.redis.port=6379 spring.data.redis.password=0000
Redis 호스트가 localhost가 아니라 redis로 되어 있어야 합니다.
즉, docker-compose 파일에서 정의한 서비스 이름과 일치해야 합니다.
Docker Compose 네트워크 확인
Docker Compose 파일에 my-network라는 커스텀 네트워크를 사용 중인데,
모든 서비스(app, redis, db)가 동일한 네트워크에 있어야 합니다.
아래 명령어로 모든 컨테이너가 같은 네트워크에 연결되어 있는지 확인하세요.
출력된 정보에 app, redis, db 서비스가 모두 포함되어 있는지 확인해보시기 바랍니다.
App 컨테이너에서 Redis 접속 테스트
Spring Boot 앱 컨테이너에서 Redis에 수동으로 연결할 수 있는지 확인해보세요.
확인하려면, 먼저 아래와 같이 앱 컨테이너에 접속합니다.
그런 다음 redis-cli를 사용해 Redis에 연결 시도해보세요.
redis-cli -h redis -p 6379
만약 연결이 성공하면 Redis는 올바르게 동작하고 있기 때문에 문제는 Spring Boot 설정일 수 있습니다.
만약 연결이 실패한다면 네트워크 또는 Redis 컨테이너에 문제가 있을 수 있습니다.
Redis 로그 확인
Redis가 올바르게 포트 6379에서 실행되고 있는지 확인하려면 Redis 컨테이너의 로그를 확인해보세요.
로그에서 Redis가 정상적으로 시작되고 올바르게 포트를 열었는지 확인해보세요.
Redis 비밀번호 확인
Redis에 비밀번호(--requirepass 0000)가 있는 것 같은데, Spring Boot 애플리케이션에서 비밀번호가 정확히 설정되어 있는지 확인해보세요.
만약 Spring Boot가 비밀번호 없이 연결을 시도한다면 Redis는 연결이 거부됩니다.
확인을 위해 잠시 Redis 비밀번호를 비활성화해서 접속이 되는지 테스트해볼 수도 있습니다.
Spring Boot 로그 확인
마지막으로, Spring Boot 애플리케이션의 로그를 확인하여 Redis 연결 실패에 대한 자세한 오류 메시지를 확인해보시기 바랍니다.