← 질문 목록
#12깊이 0

Redis 분산 락의 스핀과 Pub/Sub 방식 차이는?

데이터베이스깊이동시성

스핀 락은 풀릴 때까지 계속 두드린다. Pub/Sub은 풀렸다는 신호가 올 때까지 기다린다.

  1. 1. 클라이언트에서 Redis로: 락 획득 시도
  2. 2. Redis에서 클라이언트로: 실패 (Retry loop)
  3. 3. 클라이언트에서 Redis로: 락 획득 시도

스핀 락의 반복 요청은 Redis 부하를 키운다.

스핀 락은 구현이 단순하지만, 락을 획득하지 못했을 때 계속해서 Redis에 요청을 보내므로 CPU와 네트워크 부하가 발생한다.

반면 Pub/Sub 방식은 락 구현(예: Redisson)이 해제할 때 알림을 발행해 불필요한 요청을 줄인다. 알림은 유실될 수 있어 대기자는 시간 제한을 두고 다시 확인한다. 폴링은 풀렸는지 계속 두드리지만 Pub/Sub은 풀릴 때 깨운다.

경합이 심할수록 헛된 왕복이 줄어든다. 대신 구독을 관리하는 비용이 붙는다.

두 방식 모두 TTL과 장애 시 락 안전성을 따로 확인해야 한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

Redis 분산 락의 스핀과 Pub/Sub 방식 차이는?