오류
[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에도 안남고 안전하게 사용가능