본문 바로가기

cs(with 매일메일)

[260102금] 분산 환경에서 Redis를 활용한 잠금을 어떻게 구현할 수 있나요?

Redis의 SET명령어를 사용해 분산 잠금을 구현할 수 있다. 

가령, 1대 이상의 서버가 특정 Key에 대해서 SET명령어에 NX옵션을 추가하여 Redis에 전달하여 잠금 획득을 시도한다. 

NX옵션을 사용하면 특정 Key에 해당하는 값이 존재하지 않는 경우에만 값 추가작업이 성공한다. 

SET작업을 성공적으로 수행한 서버는 잠금을 획득한다. 잠금을 획득한 서버는 작업이 끝난 이후, Key에 해당하는 값을 제거하여 잠금을 해제한다.