아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
올리브영 favicon올리브영

Redis Pub/Sub으로 쿠폰 발급, 속도 2.2배 UP!

by DD
2023-08-07
2년 전
조회수 14

Redis Pub/Sub을 활용하여 올리브영 쿠폰 발급 시스템을 비동기적으로 개선함

쿠폰 과발급 및 미발급 문제 해결을 위해 Redis List 자료구조를 도입

2023년 6월 올영세일 기간, 분당 최대 쿠폰 발급량 2.2배 증가 및 대기 시간 단축

비동기 쿠폰 발급 아키텍처

기존 동기 방식의 쿠폰 발급은 DB Connection 자원 소모가 컸다. Redis Pub/Sub을 도입하여 쿠폰 발급 요청을 비동기적으로 처리하도록 변경했다. 구체적으로, 쿠폰 발급 Worker가 Pub/Sub 메시지를 구독하고, 메시지 수신 후 DB에 INSERT하는 구조를 갖는다.

과발급 및 미발급 문제 해결

다중 Worker 환경에서 쿠폰 과발급 문제가 발생했다. Redis Pub/Sub의 특성상 메시지 중복 수신이 원인이었다. 따라서, 각 Worker에 일련번호를 할당하고, Redis List를 활용하여 메시지 유실을 방지했다. LPop을 통해 정확히 하나의 Worker만 처리하도록 개선했다.

Redis List를 활용한 안정성 확보

Redis List를 사용하여 쿠폰 발급 데이터의 유실을 방지하고, 데이터 정합성을 확보했다. RPush를 통해 데이터를 List에 추가하고, Worker는 주기적으로 List 크기를 확인하여 LPop으로 데이터를 처리한다. 따라서, 쿠폰 발급 처리의 안정성을 높였다.

Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리
중급
아키텍처
Redis
Pub/Sub
Data
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

스프링 데이터(Spring Data) 2026.0.0-M2 출시: Redis, MongoDB 기능 개선!

스프링 로고

올리브영, Kafka 기반 준실시간 데이터 파이프라인 구축으로 45분 지연 해결!

올리브영 로고

Spring Cache + Redis record 직렬화 문제, 똑똑하게 해결!

우아한형제들 로고

Figma, 자체 개발 Redis 프록시(Proxy)로 99.9999% 가동 시간 달성

레딧 로고

이구위크 장애, Redis 대역폭 병목이 원인이었다!

무신사 로고

Redis @CacheEvict(allEntries=true) 사용, 정말 괜찮을까요?

우아한형제들 로고
올리브영 favicon올리브영
중급
아키텍처
Redis
Pub/Sub
Data
Backend

관련 추천 글

스프링 데이터(Spring Data) 2026.0.0-M2 출시: Redis, MongoDB 기능 개선!

스프링 로고

올리브영, Kafka 기반 준실시간 데이터 파이프라인 구축으로 45분 지연 해결!

올리브영 로고

Spring Cache + Redis record 직렬화 문제, 똑똑하게 해결!

우아한형제들 로고