Write-Back 전략을 사용한 장바구니 기능 개발
·
설계
목표redis를 사용해 write-back을 적용한 장바구니 기능을 구현해보면서 write-back을 학습한다.write back 이란? write back이란 변경사항을 바로 DB에 반영하는것이 아닌, 캐시같은 임시 저장공간에 저장해뒀다가, 나중에 DB에 저장하는 전략이다. 이렇게 하면 DB에 부하를 줄일 수 있기 때문에 빈번한 수정이 일어나는 좋아요나 장바구니 기능에 적용하기 좋다.기본적인 장바구니 기능 구현최소기능만 구현할거라 JPA를 사용하지 않고, JdbcTemplate을 사용했다.data.sqlCREATE TABLE IF NOT EXISTS CartItem ( userId BIGINT NOT NULL, productId BIGINT NOT NULL, quantity INT NOT N..
Redis maxmemory와 eviction정책
·
기타
어느날, 회사 서비스에 장애가 발생했다. 고객에게 나가야할 알림톡이 나가지 않았고 그 외 몇몇 기능이 제대로 작동하지 않았다. 이유를 찾아보니 celery에서 task가 동시에 엄청나게 많이쌓여 Redis에서 OOM에러가 발생한걸 확인할 수 있었다. 일단 그 때는 팀에서 임시방편으로 메모리를 늘려서 해결했지만 평소에 redis메모리를 전혀 모니터링하지 못하고 있었던 점, 메모리 관리 정책에 대해 아는게 없어 부족함을 느꼈고, 이렇게 글로 정리하게 되었다.Redis의 메모리Redis는 In-memory DB이므로 당연히 물리적으로 사용가능한 메모리 이상 사용할 수 없다. 그러므로 운영할때 OOM 에러를 만날 수 있으므로 주의해야한다.maxmemory redis는 내부적으로 사용가능한 메모리를 설정할 수 있..
togeepizza
'REDIS' 태그의 글 목록