欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

秒杀系统

程序员文章站 2024-01-21 10:46:40
...

通常的秒杀是大量的用户抢购少量的商品,类似这样的需求只需要简单的进行库存缓存,就能在实际创建订单前过滤大量的流量。
秒杀前:用户不断刷新商品详情页,页面请求达到瞬时峰值。所以可以做一个静态页面,进行倒计时;
秒杀时:秒杀页面先判断库存,再将订单存入队列,异步处理订单。
当创建订单成功,才异步通知客户端让用户进行后续的地址,优惠券信息确认,减少对数据库冲击,也过滤掉大部分的客户。一定时间内没有付款,则将货品退回库存。
单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
秒杀后:用户不断刷新商品详情页,页面请求达到瞬时峰值。所以可以做一个静态页面,倒计时结束。
最好是三个状态有不同的url,防止恶意请求入侵。

watch num
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr num
QUEUED
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.

秒杀系统

相关标签: php redis