핵심 요약
토니모리가 Redis Lettuce 기반 분산 락을 도입해 실시간 정합성을 보장하고 룰렛 프로모션의 동시성 문제를 해결했습니다.
구현 방법
- Redis Lettuce를 선택하고 NX/EX 옵션을 함께 사용한 SET으로 락 생성 및 TTL 설정을 원자적으로 수행
- 락 해제 전, 락 소유 클라이언트의 lock_value 검증으로 안전한 해제 보장
- Redis Sorted Set를 대기열로 활용해 클라이언트별 도착 시점을 점수로 관리하고 맨 앞 클라이언트를 락 시도 자격으로 확인
- 만료 시간 관리와 정기적 대기열 청소로 Deadlock 및 큐 지연을 최소화
주요 결과
- 2주간 로그인 인원 대비 약 40%의 참여율을 기록하여 프로모션 유입을 높임
- 락 기반 동시성 제어로 중복 당첨 가능성과 데이터 불일수 위험을 줄이고 실시간 정합성을 확보
- Lettuce 중심 아키텍처로 경량화와 빠른 응답성 유지


