>  Q&A  >  본문

队列 - java redis做app后台 怎么实现多人抢单

阿神阿神2765일 전513

모든 응답(1)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-18 10:05:55

    코드의 의미를 잘 이해하지 못하고 설명과도 일치하지 않는 것 같습니다.

    redis를 사용하는 것이 불가능하지는 않지만 효율성이 다소 낮을 수 있습니다. 이 문제를 해결하려면 낙관적 잠금을 사용하는 것이 좋습니다.

    예:
    주문 테이블에 버전 필드가 있다고 가정합니다. 이 필드는 한 방향으로만 증가할 수 있습니다(일반적으로 +1). 선택할 때 version도 확인하세요. 으아악

    사용자 A와 사용자 B가 특정 기간 내에 order_id=1, version=1인 주문을 차례로 또는 동시에 찾았다고 가정합니다. UPDATE 중 mysql 행 잠금이 존재하기 때문에 단 한 명의 사용자만 발생합니다. UPDATE가 성공하고(1행이 영향을 받음), 다른 사용자의 UPDATE가 실패(0행이 영향을 받음)한 다음, UPDATE 후 반환된 행 수를 기준으로 사용자가 성공적으로 주문을 가져왔는지 여부를 판단할 수 있습니다.

    회신하다
    0
  • 취소회신하다