지난 포스팅에서 Spring의 Redis 구현체인 Lettuce와 Jedis에 대해서 정리를 하고 Redisson 구현체에 대한 정리를 할 차례였지만 Lua Script의 필요성을 느끼게 된 계기가 생겨 작성하게 되었다. 무엇이 문제인가?티켓 예매 서비스를 클론 코딩하며 예매에 대한 동시성 제어를 Redis를 통해 선점 방식으로 구현한 적이 있었다. Redis는 단일 스레드 방식으로 여러 요청이 들어와도 순차적으로 처리될 수 있고 원자적 연산을 제공해 예매 시 좌석 선점 (좌석 값 감소)을 통해 간단하고 가볍게 동시성 제어를 할 수 있었다. public void safeDecrement(Long scheduleId, int quantity) { Long result = redisTemplate.o..