코딩마을방범대

Redis에 객체를 저장하는 방법 본문

💡 백엔드/Redis

Redis에 객체를 저장하는 방법

신짱구 5세 2023. 7. 4. 10:43

 

 

Redis를 이용해 String을 저장하는 방법은 매우 간단하다.

 

그러나 객체를 저장하기 위해선 Json을 이용해 저장 후 convert가 필요하다.

※ conf 파일에 아래와 같이 Json 타입으로 설정 시 자동으로 Json String으로 저장된다.

redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Object.class));

 

 

set 방식으로 저장해서 valueOperations.members(키값) 명령어를 통해 가져왔을 때 안의 따옴표들이 전부 사라졌다.

이 때문에 Json to Java Object 로 변환이 불가능했고, 이리저리 테스트해보다가 해결 방법을 발견했다.

Redis 서버에 저장된 데이터
Java에서 가져왔을 때의 데이터

 

 

 


 

 

 

 

아래와 같이 Set에 담아서 가져온 뒤 Mapper를 통해 convert 해주면 된다!

SetOperations<String, TestVO> valueOperations = redisTemplate.opsForSet();

Set<TestVO> value1 = valueOperations.members("test");
ObjectMapper mapper = new ObjectMapper();
List<TestVO> list = mapper.convertValue(value1, new TypeReference<List<TestVO>>(){});

 

 

 

 

 

 

 

SMALL