🥞 BE
home

Redis Hash List 직렬화 오류

Date
2025/02/19
Category
Web
Tag
Redis
Detail
컨텐츠 등록 시, List로 요청값을 받아 그대로 Redis에 저장하는 과정에서, Redis가 List 데이터를 제대로 저장하지 못하고 클래스 값만 받아오는 상황이 생겼다.
11) "playerContents.[1]._class" 12) "java.util.ArrayList"
Plain Text
복사
위와 같이 java.util.ArrayList로 저장되고, hget roomId:~ playerContents.[1] 명령어로 조회를 시도하면 (nil) 값이 반환되었다.
// 컨텐츠 등록 @Override public void registerContents(ContentSelectReq request) { Room room = findRoomById(request.roomId()); if (request.contentIds().size() > 5) { throw new RoomException(ExceptionMessage.CONTENTS_OVER); } room.getPlayerContents().put(request.userId(), request.contentIds()); roomRepository.save(room); log.info("contentIds : {}", room.getPlayerContents().get(request.userId())); }
Java
복사
로그를 찍어 get 명령어로 조회해오는 과정에서는 제대로 저장된 값을 반환하였다. 이건 그냥 JVM에 값 캐싱된 것 때문인 것 같고.. roomRepository.save(room) 메서드가 제대로 작동하지 않아 저장과정에서 문제가 발생하는 거라 판단햇다.