redisson library 추가
오늘 날짜 기준 최신 버전
https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter
Lettuce보다 부하가 적음
Lock 관련 클래스를 제공해주기 때문에 별도의 Repository는 필요하지 않음
public void decrease(Long key, Long quantity) {
// Lock 획득
RLock lock = redissonClient.getLock(key.toString());
try {
// Lock 획득 시도
boolean available = lock.tryLock(5, 1, TimeUnit.SECONDS);
if(!available) {
System.out.println("lock 획득 실패");
return;
}
stockService.decrease(key, quantity);
} catch (InterruptedException e) {
throw new RuntimeException();
} finally {
// Lock 해제
lock.unlock();
}
}