readyvery / readyBack

☕ [유저사이드] 간편 선결제 테이크아웃 서비스, 레디베리 🥤
https://readyvery.com/index.html
MIT License
2 stars 5 forks source link

주문 번호 발급 #203

Closed marinesnow34 closed 3 months ago

marinesnow34 commented 4 months ago

주문 번호 란?

위의 사진처럼 카페에서 흔히 사용하는 익명의 유저를 호출하는 방법

요구 사항

  1. 주문 번호를 통해 사장님이 주문건 수를 직관적으로 파악 가능 해야 함
  2. 같은 영업일, 같은 카페에 동일한 주문번호 X
  3. 순차적으로 증가해야 함

문제 인식

해결 1

한계 1

해결 2

한계 2

뇌피셜 (작성자는 redis를 잘 이해하지 못하고 있습니다.)

  1. redis싱글 쓰레드이다. -> race condition 잘 발생 하지 않음
  2. redis는 빠르다

따라서

  1. key: 가게Id이고 valueset을 사용
  2. setorderId(UUID)를 집어 넣고 size를 가져옴
  3. cron tab을 활용해서 주기적으로 set 초기화 (매일 첫 주문 고객은 1번 이여야 함)

의문? 다음과 같은 상황은 일어나지 않을 것인가??

(기대) 1번 사람이 set.push(uuid1) -> set.size() -> 결과 1개 2번 사람이 set.push(uuid2) -> set.size() -> 결과 2개 (예상) set.push(uuid1) set.push(uuid2) set.size() set.size() -> 2개 2개

marinesnow34 commented 3 months ago
marinesnow34 commented 3 months ago
marinesnow34 commented 3 months ago
marinesnow34 commented 3 months ago
marinesnow34 commented 3 months ago