인프런 커뮤니티 질문&답변

최지환님의 프로필 이미지
최지환

작성한 질문수

재고시스템으로 알아보는 동시성이슈 해결방법

Redisson 을 활용하여 재고로직 작성하기

레디슨 락 대기 질문

작성

·

371

0

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

 

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



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

답변 1

0

최상용님의 프로필 이미지
최상용
지식공유자

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

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

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

감사합니다.

최지환님의 프로필 이미지
최지환

작성한 질문수

질문하기