inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

재고시스템으로 알아보는 동시성이슈 해결방법

문제점

재고시스템 동시성 문제 해결에 redis incr을 사용해도 되나요?

522

해앵인

작성한 질문수 5

0

재고 시스템 강의 듣고 난 이후에 쿠폰시스템 강의 들었는데요,

재고시스템 강의에서 사용한 lock 방식은 성능에 영향이 있으니 쿠폰발급 강의에서 사용했던 redis incr 명령과 set을 사용해서 재고시스템 문제도 해결할 수 있지 않을까 생각이 드는데요. 가능한 방법인가요?

java spring 동시성

답변 2

0

최상용

해앵인님 안녕하세요.
중간의 캐싱용도로 사용하고자 한다면 사용할 수 있을것 같습니다.
다만, 재고의 개수를 redis 로 관리하게 된다면 무수한 상품이 있을때 불편함이 있을것 같습니다.

그렇기때문에 누군가가 물어본다면 추천하지는 않을것 같습니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

님께서 질문하신 “재고시스템에서 Redis의 INCR 명령어를 사용하여 동시성 문제를 해결하는 방법”에 대해 답변 드리겠습니다. Redis의 INCR 명령어는 atomic operation이므로, 동시에 여러 요청이 들어와도 각 요청에 대해 하나씩만 증가시킵니다. 이를 통해 동시성 문제를 효과적으로 관리할 수 있습니다. 그러나, 실제 재고 수량을 차감하는 과정에서는 재고가 마이너스가 되지 않도록 별도의 검사 로직을 추가하는 것이 중요합니다. 또한, Redis를 사용할 때는 데이터의 지속성(persistence) 및 복구 메커니즘도 고려해야 합니다. 재고 시스템의 특성과 요구 사항에 따라 적절한 사용이 필요할 수 있으니, 성능과 데이터 일관성 측면에서 꼼꼼하게 고려 후 적용하시는 것이 바람직합니다.

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

39

2

낙관적 락을 사용할 떄 차이점

0

118

2

동시성 검증 코드에 관한 문의

0

90

2

단일연산

0

69

2

낙관적락vs. 레디스락

0

105

2

안녕하세요. 레디슨 질문있습니다..!!

0

65

2

@Lock(OPTIMISTIC)이 필요한 이유

0

88

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

128

2

DataSource Hikari 사용 이유

0

144

2

saveAndFlush 사용 이유 문의

0

111

3

비관적 락 VS 네임드 락

0

156

3

application.yaml 에 redis 정보

0

97

2

왜 클래스 이름에 Facade 가 붙나요?

0

180

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

216

2

@modifying 이용한 동시성 제어

0

167

2

DB락과 분산락

0

259

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

170

2

optimistic Lock 재시도 질문입니다.

0

229

2

낙관적 락 테스트 실패

0

239

2

오류?

0

1624

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

267

2

Pessimistic Lock 전체 테스트 오류 문의

0

357

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

456

2