nhnacademy-be3-CookShoong/cookshoong-backend

Redis 장바구니 DB 영구저장시 동시성 오류 발생

Opened this issue · 1 comments

현재 Redis DB 는 여러 회원들이 공유하면 사용하게 되어 각 사용자마다 장바구니 Redis 를 가지고 있는데 이때 Redis 가 만료되면 접속한 회원들에 대해서 나의 장바구니 key 가 만료되면 접속한 회원들에 대해서 만료된 key 가 Listener 에 들어오게 된다. 그래서 만료된 키는 하나지만 각 회원마다 Listener 에서 만료된 키를 잡아서 DB 에 저장시키므로 여러 개가 DB 장바구니가 생성된다.

결국 localhost 켜져 있는 수 만큼 동시성이 발생해 DB 장바구니에 저장하게 된다.

해결방법

  1. 장바구니 ERD 에서 회원은 하나에 장바구니만 가지게 되어 있는데, 회원과 장바구니에 대해서 참조키만 걸려 있어서 동시성이 발생될 때 여러개의 DB 장바군가 생성된다.