문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
nosql:redis:distributed_lock [2023/07/21 15:26] kwon37xi |
nosql:redis:distributed_lock [2025/02/19 11:26] (현재) kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Redis Distributed Lock ====== | ====== Redis Distributed Lock ====== | ||
- | | + | |
+ | ===== Lock 방식 ===== | ||
+ | |||
+ | | ||
+ | * Pub/Sub : Lock 을 다른쪽이 소유해도 재요청 안함. Lock 획득이 가능해지면 message 를 publish 하는 방식. 구현 복잡도가 높고 Redis CPU 점유율, 과잉 트래픽 발생등의 문제가 발생할 수 있음. | ||
+ | * 일반적인 Spin Lock과 Pub/Sub Lock 은 단일 Redis 인스턴스 기반으로 인스턴스에 문제가 생길경우 lock 이 꼬일 수 있다. | ||
+ | * 좀 더 안전한 분산 Lock을 원한다면 | ||
+ | * 하지만 일반적인 경우에는 Spin Lock 으로 충분하다. | ||
===== Lettuce 기반 ===== | ===== Lettuce 기반 ===== | ||
줄 8: | 줄 16: | ||
* [[https:// | * [[https:// | ||
* Spin lock 과 pub/sub 기반이 있는데 spin lock 은 락을 획득할 때까지 계속해서 락을 획들할 수 있냐고 물어보는 방식이고, | * Spin lock 과 pub/sub 기반이 있는데 spin lock 은 락을 획득할 때까지 계속해서 락을 획들할 수 있냐고 물어보는 방식이고, | ||
- | * pub/sub 방식이 더 좋다. | + | * Spin Lock 의 성능이 더 좋다. |
===== Redisson ===== | ===== Redisson ===== | ||
- | * [[nosql: | + | * [[nosql: |
줄 23: | 줄 31: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ |