Redisson

Han Gyul Kang·2022년 10월 16일

동시성 문제

목록 보기
6/7

상위글 : 동시성 이슈 해결 고민

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();
        }
    }
profile
피아노 치는 개발자

0개의 댓글