Key의 Serializer 방식을 JDKSerializer방식으로 하는 경우
keys가 3), 4)와 같이 알아볼 수 없게 들어감.
그러나 JAVA 상에서 key에 해당하는 값을 불러올 경우 제대로 불러오긴 한다.
이 때 내가 1로 저장한 key가 4)같이 저장된 경우더라도,
JAVA에서 레디스에 key 1에 해당하는 값을 가져오면 value를 정상적으로 가져온다.
즉
이상하게 저장되고 있는 것은 아닌데, 보이는게 저렇게 보이는거 같다.
GenericJackson2JsonRedisSerializer
이용해 직렬화
커스텀 클래스를 직렬화할 수 있다
MSA 형식에서는 추천하지 않는다
장점
모든 Class Type을 JSON 형식으로 저장 가능
단점
Class 및 Package 전부 저장하므로, 다른 프로젝트에서 접근하기 위해서는 … 프로젝트 별 Package를 일치 시켜야 함
→ MSA에서 문제 발생 가능
이 외 직렬화 방식
Jackson2JsonRedisSerializer
클래스 타입 지정
객체 저장 시, Class 값 대신 Class Type 값을 JSON 형식으로 저장
장점
Package 등의 정보 일치 고려할 필요 없음
단점
특정 클래스에 종속적
여러 쓰레드 동시 접근 시, 직렬화 문제 발생 가능
StringRedisSerializer
String 값 그대로 저장
장점
Class 타입 지정 필요 없음
쓰레드 간 문제 발생 없음
단점
JSON 형식으로 직접 매핑해야 함
LocalDateTime 직렬화 문제