• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

레디슨 락 대기 질문

23.11.19 22:46 작성 조회수 283

0

레디슨과 레튜가 락 대기 관련해서 질문드립니다.
레튜스는 스핀락 방식으로 쓰레드를 계속 사용해서 부하를 주는 것으로 배웠습니다.

 

그에 반해 레디슨을 사용하면 쓰레드 대기를 한다고 하셨는데, 쓰레드가 대기 되면, 해당 쓰레드는 스핀락과 다르게 아무것도 하지 않아서 부하를 주지 않는 것인가요? 그렇다면 스핀락과 크게 차이가 없다는 생각이 들었습니다.



아니면 대기 중에 다른 작업을 하는 것이라 유용한것인가요?

답변 1

답변을 작성해보세요.

0

최지환님 안녕하세요!
스핀락의 형태는 락 획득 실패시 redis 로 계속해서 요청을 보내게 됩니다.
반면 레디슨의 경우에는 락 획득 실패시 대기하고 있다가 알림이 오면 그때 1번만 락획득을 시도하게 됩니다.

redis 의 입장에서 생각해보면 스핀락의 형태는 1초에 100번의 요청이 올수도 있지만 레디슨의 형태는 알림이 오면 단 1번만 시도하게 됩니다.

redis 의 입장에서 이점이 있어서 레디슨을 사용합니다.

감사합니다.