redis decr 防止超卖_秒杀常见问题(超卖问题)

  • Post author:
  • Post category:其他


问题描述

秒杀系统优化以及解决超卖问题_dazou的博客-CSDN博客_秒杀超卖解决方案​blog.csdn.net

bc0d4055dc706037bf47ba9f5db9073b.png

在众多抢购活动中,在有限的商品数量的限制下如何保证抢购到商品的用户数不能大于商品数量,也就是不能出现超卖的问题;还有就是抢购时会出现大量用户的访问,如何提高用户体验效果也是一个问题,也就是要解决秒杀系统的性能问题。

解决超卖问题

每一个用户只能抢购一件商品的限制;在数据库减库存时加上库存数量判断,库存数量为0时阻止秒杀订单的生成。

  • 在数据库减库存时加上

    库存数量判断

    ,防止数据变为负数
  • 数据库加

    唯一索引

    ,防止用户重复购买

解决性能问题

  • 使用

    Redis缓存预减库存

    ,减少数据库的访问。因为缓存的访问速度比数据库访问快得多。
  • 使用

    内存标记

    ,减少Redis缓存的访问次数。
  • 使用队列等

    异步

    手段,请求先入队缓冲,异步下单,将数据写入数据库,增强用户体验。

性能解决方案

总体思路就是要

减少对数据库的访问

,尽可能将数据缓存到Redis缓存中,从缓存中获取数据。

  1. 在系统

    初始化

    时,将商品的

    库存数量加载到Redis缓存中

  2. 接收