오류

[Redis] Redis연동 - 이슈 정리

obin01 2025. 2. 13. 12:13

˙  오류 내용

Cannot invoke "org.springframework.data.redis.serializer.RedisSerializer.serialize(Object)" because the return value of "org.springframework.data.redis.core.AbstractOperations.keySerializer()" is null

 

해결방법

이 오류는 Redis의 Key Serializer가 제대로 설정되지 않아서 발생하는 문제입니다.
Spring Boot의 RedisTemplate을 사용할 때, Key/Value를 직렬화(Serialize)해야 하는데, Key Serializer가 null인 경우 발생하는 오류

-> RedisTemplate<String, String> redisTemplate 의존성 주입 하는 부분에서 null이 들어감

 

˙  오류 내용

Unable to connect to Redis

 

해결방법

// Spring Boot 애플리케이션이 Redis 서버에 연결할 수 없을 때 발생하는 오류

1. redis실행 중인지 확인
# redis-cli ping

2. ip 맞는지 확인 - spring boot 와 다른 컨테이너에서 실행되는 경우
# docker inspect
spring.data.redis.host=172.17.0.2 수정

3. 로컬에서 실행할경우
# docker ps
포트가 0.0.0.0:6379->6379/tcp 이 아닐경우 로컬에서 접속 불가능
-> 기존 컨테이너를 제거하고 재 실행
# docker run -d --name redis -p 6379:6379 redis
spring.data.redis.host=localhost 수정

 

˙  오류 내용

redis 서버에서 keys * 명령어를 실행했을때

backup1
backup2
backup3
등의 key가 존재 한다면 해킹의 위험이 있음

 

해결방법

1. 기본포트인 6379로 열려있거나
2. 비밀번호 설정이 안되어있는경우 생김

> 포트 변경 및 비밀번호 설정으로 해결
> 비밀번호 확인 : 
$ redis-cli
$ config get requirepass
없을경우
$ config set requirepass 비밀번호
로 설정

> 비밀번호 설정 후 :
$ redis-cli
$ AUTH 비밀번호
로 접근하여 history에도 안남고 안전하게 사용가능