[Database] Redis 분산락에 대해서
·
Database
Redis 분산락?Lettuce vs Redisson, pub/sub, 공정성, 멀티 인스턴스에서의 안전한 사용법왜 분산락이 필요한가단일 서버라면 synchronized나 DB 행락으로도 충분하다. 하지만 멀티 인스턴스(스케일 아웃) 환경에서는 서로 다른 프로세스가 같은 자원(예: 같은 주문/쿠폰/재고)을 동시에 건드릴 수 있다. 이때 처리 순서를 보장해 데이터 꼬임을 막아주는 장치가 분산락이다.Redis로 잠그는 기본 아이디어핵심은 키를 선점한 1명만 들어간다는 것.락 획득: SET my_lock NX PX NX: 키가 없을 때만 세트(선점)PX: 임대시간(lease time). 주인이 죽어도 영원히 잠기지 않도록 유효기간 부여락 해제: "내가 건 락만 푼다"를 보장해야 하므로 Lua 스크립트로 원자..