Kim Seogyu
Database

Redis 기반 분산 락 가이드

Redis 분산 락의 안전한 기본 패턴과 Redlock 사용 시 주의점을 정리합니다.

Published 2025년 12월 27일1 min read154 words

Redis 기반 분산 락 가이드

Redis 락은 간단하지만 오용이 쉽습니다. 핵심은 "락 획득보다 락 해제 안전성"입니다.

안전한 기본 패턴

락 획득:

  • SET key value NX PX ttl
  • value는 고유 토큰(UUID)

락 해제:

  • Lua 스크립트로 GET == value일 때만 DEL

이 조합이 최소 안전선입니다.

꼭 지켜야 할 원칙

  1. TTL 없는 락 금지
  2. 락 소유자 확인 없는 해제 금지
  3. 임계구역 시간이 TTL보다 길 수 있으면 갱신 전략 필요
  4. 락 실패 시 재시도 백오프 적용

Redlock에 대한 현실적 관점

Redlock은 고가용성 락 시도이지만, 모든 분산 시스템 문제를 해결하지는 않습니다. 매우 강한 정합성이 필요한 금융/원장 핵심 경로라면 DB 트랜잭션 또는 합의 기반 락을 우선 검토해야 합니다.

적합한 사용처

  • 배치 중복 실행 방지
  • 스케줄러 리더 선출(완전 엄격성 불필요)
  • 캐시 재생성 중복 방지

결론

Redis 락은 "정확히 한 번" 보장 도구가 아니라 실용적 경합 제어 도구입니다. 실패 시 보상 로직까지 포함해서 설계해야 안전합니다.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim