首页 > 项目 > 当前页面

面试官让我设计一个秒杀系统

2024-10-07 NEW个对象

秒杀系统需要解决哪些问题,这里列几个关键性的问题:


1、高并发的瞬时流量

2、库存扣减

3、重复下单

4、热点数据


1、如何解决高并发的瞬时流量:


限流、多级缓存架构


2、库存扣减


cas数据库扣除,redis lua脚本扣除


3、重复下单


每个页面一个token,请求的时候携带token


4、热点数据


存在redis里


5、如何解决用户下一单或用户N单的问题


在写redis lua脚本扣除商品缓存时候,进行重复下单或N单的检测。


下一单:在下单的时候,将用户id,添加到set结构里,然后判断id是否在set里,判断用户是否下过单。

下N单:redis的key设置为seckill:userid:xxx,值为下单的数量,在下单的进行判。incrby进行加法操作。


相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言