84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
php有木有秒杀插件可推荐?或者说一个php秒杀程序实现的思路是啥?用到啥技术?
其他语言的秒杀工具也可以推荐来撸一下
人生最曼妙的风景,竟是内心的淡定与从容!
分流(随机丢弃用户) + 多次队列(缓存)
比如10个商品,10万个用户 1,按秒杀前在页面中有活跃的用户数,按一定比例,分离一批用户出来,直接返回秒杀失败,只留下300个用户 2,将这300个用户写入第一次队列,比如redis的列表,mysql中的一张表等 3,获取队列中的前10个用户,为秒杀成功,生成订单,其它用户提示秒杀失败 4,有些秒杀业务(如小米),在第三步操作时,每个用户都提示成功,但在提交用户订单资料的时候,再生成一个队列,根据提交资料的顺序,取前10名提示秒杀成功,其它用户提示秒杀失败
单个商品的秒杀可以借鉴文件系统的锁机制, 同时只有一个人/进程/线程在处理/打开/拥有状态, 直到释放/关闭/订单过期. 多个商品的秒杀可以借鉴队列的机制, 先进先出/先到先得/手快有手慢无.
redis队列,memcache Memcache::decrement
分流(随机丢弃用户) + 多次队列(缓存)
比如10个商品,10万个用户
1,按秒杀前在页面中有活跃的用户数,按一定比例,分离一批用户出来,直接返回秒杀失败,只留下300个用户
2,将这300个用户写入第一次队列,比如redis的列表,mysql中的一张表等
3,获取队列中的前10个用户,为秒杀成功,生成订单,其它用户提示秒杀失败
4,有些秒杀业务(如小米),在第三步操作时,每个用户都提示成功,但在提交用户订单资料的时候,再生成一个队列,根据提交资料的顺序,取前10名提示秒杀成功,其它用户提示秒杀失败
单个商品的秒杀可以借鉴文件系统的锁机制, 同时只有一个人/进程/线程在处理/打开/拥有状态, 直到释放/关闭/订单过期.
多个商品的秒杀可以借鉴队列的机制, 先进先出/先到先得/手快有手慢无.
redis队列,memcache Memcache::decrement