[Redis] 분산 락을 이용한 동시성 처리
·
Back-End/Redis
들어가며 팝업 스토어 정보 조회 및 예약하는 서비스인 Poppy! 프로젝트를 진행하면서, 예약 처리에 대한 고민이 생겼다. 분산 서버를 통해 예약을 구성하기 때문에 DB나 Redis를 이용해서 Lock을 걸어야 하는 상황이었다. 동시성 처리를 위해 Redis를 사용하게 되었는데, 이 과정을 포스트로 작성하려고 한다. 데이터베이스의 Lock 종류우선 데이터베이스의 Lock 종류를 알아보자. DB Lock에는 비관적 락과 낙관적 락이 있다. Pessimistic Lock (비관적 락) 비관적 락은 트랜잭션이 시작될 때 다른 트랜잭션이 해당 데이터를 읽거나 수정하지 못하도록 미리 Lock하는 방식으로, 해당 Lock의 과정은 다음과 같다.예약을 시도할 때, 해당 시간대 데이터를 조회하면서 동시에 Lock다른 ..