smileboard3 Redis사용시, 발생하는 데이터 정합성 문제 Redis를 사용하면서 겪은 데이터 정합성 문제 해결 과정을작성한 글입니다. 문제 상황게시물을 새로 등록을 하고, 조회를 한뒤 기존 게시물을 업데이트하고,다시 조회를 해보니 업데이트된 게시물이 조회되는 것이 아닌, 업데이트 이전 게시물이 조회가 되는 상황 문제 원인게시물이 업데이트되었을 때, Redis에 저장된 데이터는 동기화되지 않으므로, 데이터 정합성 문제가 발생할 수 있다. 데이터베이스의 게시물 내용이 변경되었지만, Redis는 여전히 이전 데이터를 반환할 수 있어 최신 상태가 유지되지 않는다. 문제 해결 방법게시물을 업데이트할 때, 해당 게시물과 관련된 Redis에 저장된 캐시 데이터를 삭제하여, 다음 조회 시 최신 데이터가 반영되도록 한다. @CacheEvict(value = "getPosts.. 2024. 10. 1. Redis, 캐싱하면 정말 응답 속도가 빨라? Redis가 정말 캐싱을 잘 해주는지 아닌지확인하는 글입니다. 성능을 높이고자 하는 부분게시물을 불러올때 카테고리를 기준으로 불러오게 됩니다. 매번 카테고리에 관련된 글을 불러올때, 속도를 개선하고자DB에 직접 쿼리를 날려 조회하는 방식이 아닌, 한번 조회된 데이터는 Redis에 저장해 놓고, 다음번 조회시엔 Redis에서 조회하도록 하는 상황입니다. Redis관련 설정 코드package com.sangyunpark.smileboard.config;import com.fasterxml.jackson.databind.ObjectMapper;import java.time.Duration;import org.springframework.beans.factory.annotation.Value;import or.. 2024. 10. 1. 세션 로직 개선기 (feat. 더티 코드) 세션 처리 로직을 개선하는 과정을 담은 글입니다.Version #1session이 필요할 때마다 3줄씩 반복되는 로직 String id = SessionUtils.getLoginDefaultId(session); if(id == null) SessionUtils.getLoginAdminId(session); if(id == null) throw new NotFoundSession(SESSION_NOT_FOUND); 로직이 사용되는 부분 @Transactional(readOnly = true) public void updatePassword(final UserUpdatePasswordRequest request, final HttpSession session) { String encryptBeforePas.. 2024. 9. 29. 이전 1 다음