목록 보기
Redis Lettuce로 구현하는 안전한 분산 락 — 실시간 정합성 보장
백엔드

Redis Lettuce로 구현하는 안전한 분산 락 — 실시간 정합성 보장

토니모리
토니모리
2025년 1월 20일

두줄요약

룰렛 프로모션의 동시성 문제를 막기 위해 Redis Lettuce 기반 분산 락 구현 방식을 소개했습니다. 대기열 순서 보장과 TTL, 소유권 확인으로 실시간 정합성을 확보했습니다.

문제 상황

  • 룰렛 프로모션 동시 참여로 인한 중복 당첨과 데이터 정합성 문제
  • 동일 고객의 반복 요청으로 발생할 수 있는 불공정 처리와 시스템 오류 위험

원인 분석

  • 분산 환경에서 공유 리소스 접근 동기화 부재
  • 락 생성과 해제의 원자성, 소유권 확인, 만료 처리 미흡 시 문제 발생

해결 방법

  • Redis SET NX EX로 원자적 락 생성과 TTL 설정
  • 락 소유자만 해제하도록 clientId 검증
  • Sorted Set을 대기열로 사용해 참여 순서 관리와 만료 항목 정리

적용해볼 점

  • 실시간 이벤트에서 중복 처리 방지용 분산 락 설계
  • TTL 기반 deadlock 방지와 대기열 순서 보장 패턴 적용
  • Lettuce처럼 기본 기능 중심 클라이언트로 직접 제어하는 방식 검토

다음 읽기

#Redis 주제를 다룬 다른 회사 글

풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

풀필먼트 입고 서비스의 동시성 문제를 해결하기 위해 Redisson 기반 분산락을 적용한 사례를 소개했습니다. AOP와 어노테이션으로 락을 추상화하고 트랜잭션 커밋 이후 해제로 정합성을 보장했습니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...