사용자 도구

사이트 도구


nosql:redis:distributed_lock

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
nosql:redis:distributed_lock [2025/02/19 11:24]
kwon37xi
nosql:redis:distributed_lock [2025/02/19 11:26] (현재)
kwon37xi
줄 2: 줄 2:
  
 ===== Lock 방식 ===== ===== Lock 방식 =====
 +
 +  * Spin Lock : ''SET NX EX'' 로 원자적으로 값을 설정하고 Expiration 지정. 그리고 Lock 을 다른 쪽에서 소유하면 spin 을 돌면서 지정 시간마다 다시 Lock 획득 재요청.
 +  * Pub/Sub : Lock 을 다른쪽이 소유해도 재요청 안함. Lock 획득이 가능해지면 message 를 publish 하는 방식. 구현 복잡도가 높고 Redis CPU 점유율, 과잉 트래픽 발생등의 문제가 발생할 수 있음.
   * 일반적인 Spin Lock과 Pub/Sub Lock 은 단일 Redis 인스턴스 기반으로 인스턴스에 문제가 생길경우 lock 이 꼬일 수 있다.   * 일반적인 Spin Lock과 Pub/Sub Lock 은 단일 Redis 인스턴스 기반으로 인스턴스에 문제가 생길경우 lock 이 꼬일 수 있다.
-  * 완벽한 분산 Lock을 원한다면 [[https://redis.io/topics/distlock|Distributed locks with Redis – Redis]] 에서 추천하는 **Redlock**을 사용해야 한다.+  * 좀 더 안전한 분산 Lock을 원한다면 [[https://redis.io/topics/distlock|Distributed locks with Redis – Redis]] 에서 추천하는 **Redlock**을 사용해야 한다.
   * 하지만 일반적인 경우에는 Spin Lock 으로 충분하다.   * 하지만 일반적인 경우에는 Spin Lock 으로 충분하다.
  
줄 33: 줄 36:
   * [[https://esperer.tistory.com/65|[Redis] Distributed Lock (Redisson, Lettuce, RedLock) — 메모장 희망편]]   * [[https://esperer.tistory.com/65|[Redis] Distributed Lock (Redisson, Lettuce, RedLock) — 메모장 희망편]]
  
-  *  
nosql/redis/distributed_lock.1739931841.txt.gz · 마지막으로 수정됨: 2025/02/19 11:24 저자 kwon37xi