20. 레디스 트러블슈팅

Alex·2024년 6월 24일
0

이슈 트래커

목록 보기
16/21

1.값 직렬화

레디스에 refresh token을 저장하는데 계속 값이 제대로 저장이 안돼서 모든 키를 조회해보니 직렬화가 잘못됐었다.

이 문제를 해결하려면 String 타입에 맞는 직렬화 설정을 해주어야 한다고 한다.



@Repository
@RequiredArgsConstructor
public class JwtRepository {

    private final RedisTemplate<String, String> redisTemplate;

    public RefreshToken save(RefreshToken refreshToken){
        ValueOperations valueOperations = redisTemplate.opsForValue();
        valueOperations.set(refreshToken.getToken(), refreshToken.getUserId());
        redisTemplate.expire(refreshToken.getToken(), JwtConstants.REFRESH_EXP_TIME, TimeUnit.MILLISECONDS);

        return refreshToken;
    }

    public Optional<RefreshToken> findByToken(String token){
        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
        String userId = valueOperations.get(token);

        if(Objects.isNull(userId)){
            return Optional.empty();
        }

        return Optional.of(new RefreshToken(token, userId));
    }

}

이렇게 RedisTemplate에 타입을 지정해주니 정상적으로 들어갔다!

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글