Skip to content

docs(redis): 5편 Redis Lock과 멱등성 키 설계 #152

Description

@devy1540

상위 이슈

목적

Redis lock을 결제/알림 중복 방지와 연결해 이해한다. lock 구현 명령어보다 중요한 것은 Redis lock이 보장하지 않는 것과 DB transaction/idempotency key와의 역할 분리다.

다룰 질문

  • SET NX PX는 왜 lock의 기본 명령으로 쓰이는가?
  • lock value를 unique token으로 둬야 하는 이유는 무엇인가?
  • lock TTL은 어떻게 정해야 하는가?
  • Redis lock이 풀렸지만 실제 작업은 끝나지 않은 경우 어떤 문제가 생기는가?
  • 결제 중복 방지는 Redis lock만으로 충분한가?
  • idempotency key와 lock은 어떻게 다르게 쓰는가?

설계 산출물

  • 결제 승인 요청 멱등성 설계
  • 알림 중복 발송 방지 key 설계
  • lock acquire/release pseudo code
  • lock 실패/만료/프로세스 죽음 시나리오 분석

완료 조건

  • Redis lock의 한계를 명확히 설명한다.
  • DB unique constraint, idempotency table, Redis lock의 역할을 분리한다.
  • 결제/알림 시나리오 각각에 대한 실패 조건을 포함한다.

다음 세션 시작 지점

설계안에서 "Redis가 보장하는 것"과 "DB나 애플리케이션이 보장해야 하는 것"을 먼저 구분한다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: blogBlog listing, post rendering, search, tags, or seriesarea: contentBlog post content changesdocumentationImprovements or additions to documentationtrack: redisRedis learning and mastery tracktype: challengeLearning challenge or diagnostic task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions