当大量请求进来减少mysql中的库存,但是还没来得及修改redis的库存

来源:8-5 提高秒杀接口速度--astatus

spkinger

2018-06-21

如标题中所说,这时很有可能会大量请求没有被redis拦住,直接涌入mysql中,请问有什么好的处理方案吗

写回答

1回答

一凡

2018-06-21

先通过redis中incr减库存,如果成功,才会到mysql生成订单数据,如果失败,则直接返回秒杀失败啦,不会有数据库操作。如果库存不足,也会生成astatus.js静态化文件,后续也就不会经过php,redis,mysql整个过程。

redis减库存不成功,也就秒杀失败了,不会到mysql数据呀。

系统中会涉及到mysql的地方只有一个,那就是秒杀成功的时候,保存订单数据。库存数量可能1w,也可能10w,那就是1w或者10w的insert操作。大量请求进来,哪怕是100w,1个亿,那也不会有超过库存数量的处理,比如:1w、10w的处理要到mysql。

0
0

PHP秒杀系统 高并发高性能的极致挑战

从万次到亿万次秒杀系统的性能优化 ,从单机到分布式的架构升级

614 学习 · 78 问题

查看课程