본문 바로가기

redis

🥤 코카콜라 맛있다 DB Lock 과 Redis Lock 중에 뭐가 더 좋을까요 알아맞혀보세요 with JPA 동시성 접근 제어를 위해 DataBase 나 Redis Lock를 이용하는데요. 두 가지 선택지를 직접 구현해보고 각각의 동작 원리를 이해해보는 시간을 가져보았습니다. DB lock 과 Redis lock 의 트레이드오프 지점은 다음과 같이 거론되고 있습니다. DataBase Lock를 이용하면 추가적인 인프라 구성 없이 동시성 문제를 해결할 수 있다.   하지만 Lock 획득을 위해 대기하는 Connection 이 증가할 수 있고, 이건 높은 트래픽 상황에서 성능 저하로 이어지는 포인트다.Redis를 이용한 Distributed Lock은 DataBase Connection 증가를 방지할 수 있지만, 별도의 관리가 필요하다. Redis 관리에는 메모리 최적화, 장애 복구, 데이터 일관성 유지 등의 과제.. 더보기
성능과 일관성을 무게추에 달아보자 On Redis ! redis 는 동작이 매우 빠릅니다. replica 와 함께 동작하는 경우에도 그렇습니다. redis 는 왜 빠른가?해당 포스팅에서는 이 궁금증을 따라가보는데에서 출발합니다. 그리고 아래 질문들의 답을 찾아가는 과정입니다. redis 는 왜 kafka 처럼 일관성을 위한 지원이 두둑하지않는가?kafka 대용으로 redis 의 PUB/SUB 은 왜 거론되지않는가? redis 의 replica(복제)는 동기인가 비동기인가? 동기 (또는 비동기) 라면 왜 그럴까?동기/비동기의 방식을 사용자가 컨트롤할 수 있을까? 마치 kafka 의 ISR 설정처럼?redis 에서 쓰기 작업을 손실할 수 있는 케이스는 무엇이 있을까?쓰기가 손실되면 어떤 영향이 있을까?그럼 cluster 는 어떻게 동작하고 있을까? 동기일까 비.. 더보기
재고 차감 로직 복기하며 구멍난 헛간 메우기 어떤 서비스든 판매하는 상품이 있다면 상품에 달린 재고도 관리 대상입니다. 이전에 구현했던 재고 차감 로직을 복기해보고 개선해보려고 합니다. 먼저 상품 재고와 관련된 보통의 요구사항입니다. 1. 상품은 등록된 재고량을 초과하여 판매할 수 없다. 2. 재고가 없는 상품은 주문할 수 없다. 3. 상품 재고는 미리 등록해둘 수 있어야한다. 해당 포스팅에서는 1번과 2번에 집중되어있습니다. 📍 재고 차감편 보통 재고 차감시 사용하는 라이브러리는 redis 입니다. 왜 redis가 이용되고 있는 걸까요? 아래와 같은 이유들이 있습니다. 재고 차감에 redis를 사용하는 이유 1. 재고 차감은 실시간으로 이루어져야 하며, 높은 성능이 요구되는 작업이다. -> Redis 는 Disk 기반이 아닌 Memory 기반의 .. 더보기