Redis解决优惠券秒杀应用案例

网友投稿 582 2023-04-19

Redis解决优惠券秒杀应用案例

Redis解决优惠券秒杀应用案例

虽然本文是针对黑马点评的优惠券秒杀业务的实现,但是是适用于各种抢购活动,保证线程安全。

摘要:本文先讲了抢购问题,指出其中会出现的多线程问题,提出解决方案采用悲观锁和乐观锁两种方式进行实现,然后发现在抢购过程中容易出现一人多单现象,为保证优惠券不会被【黄牛】抢到,因此我们在保证多线程安全的情况下实现了一人一单业务,最后指出本文的实现在集群情况下的不足之处。在本专栏的另一篇文章中提出集群或者分布式系统的解决方案。

【前端页面】

在代金券发放后,多个用户会进行优惠券抢购,在抢购时需要判断两点:

下单时需要判断两点:

秒杀是否开始或结束,如果尚未开始或已经结束则无法下单  库存是否充足,不足则无法下单

下单核心逻辑分析:

当用户开始进行下单,我们应当去查询优惠卷信息,查询到优惠卷信息,判断是否满足秒杀条件

比如时间是否充足,如果时间充足,则进一步判断库存是否足够,如果两者都满足,则扣减库存,创建订单,然后返回订单id,如果有一个条件不满足则直接结束。

【逻辑图】

【代码实现】

?

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何基于Session实现短信登录功能
下一篇:Redis并发访问问题详细讲解
相关文章