我们模拟10w个人一瞬间涌入页面进行秒杀,能够秒杀成功的只有10人。我们把先进来的用户放入redis队列中,当队列中的用户达到10人时,后面的用户跳转到秒杀结束页面。这里用随机数来表示不同的用户。

header("Content-type:text/html;charset=utf-8");
$redis = new Redis();
$redis->connect("localhost", "6379");
$redis->select(1);
$redis_name = "miaosha";
$num = 10;//表示会有10人秒杀成功
$i = 100000;//模拟10w人瞬间过来访问时
$n = 0;//用来验证程序执行时数据量是否正确
while ($i--) {$n++;$uid = mt_rand(100000, 999999);if ($redis->llen($redis_name) < $num) {$redis->rpush($redis_name, $uid);echo $uid . "秒杀成功" . $n . "<br>";} else {echo $uid . "秒杀已经结束" . $n . "<br>";}
}
$redis->close();

由上图我们可以看出,秒杀成功的第一个用户的id是813696,秒杀成功的最后一个用户是909772;参与秒杀人数总共是10w。

从队列中把秒杀成功的10个用户取出来,观察第一个用户和最后一个用户是否跟之前的记录值一样。

header("Content-type:text/html;charset=utf-8");
$redis = new Redis();
$redis->connect("localhost", "6379");
$redis->select(1);
$redis_name = "miaosha";
while ($redis->llen($redis_name) > 0) {$str = $redis->lpop($redis_name);echo $uid . "秒杀成功用户" . $str . "<br>";
}
$redis->close();

由上图我们可以看出,秒杀成功的第一个用户的id是813696,秒杀成功的最后一个用户是909772;可以看出结果是很准确的。

redis高并发之秒杀活动解决方案相关推荐

  1. redis分布式锁实现秒杀活动

    最近,参与和负责公司的一次秒杀活动的设计开发,收获颇多,与大家分享.其实大家在生活中或见过或参见过秒杀活动,用户以极低的成本获得高价值的商品,所以也导致活动期间出现拥挤现象,进而导致一些高并发问题,所 ...

  2. gin redis 链接不上_php + redis 高并发商品秒杀 完整业务模拟流程 实现方案

    关于商品秒杀 之前百度了很多关于商品秒杀的业务怎么做,网上的答案真的是五花八门,归纳一下就两种方式 队列或计数器 网上大部分都没有写具体的代码业务 我这里模拟一个业务小场景进行实践 商品:1 每日限量 ...

  3. redis解决“高并发定时秒杀”库存误差问题

    前言:高并发的秒杀活动中,通过查询数据库判断是否还有库存,然后对库存字段进行增减,极易出现库存超出或者库存为负的情况,一般来说有3中解决办法(数据库表加锁,memche缓存,redis队列): 我们这 ...

  4. Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统

    一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...

  5. 【硬核】秒杀活动技术方案,Redis申请32个G,被技术总监挑战了...

    作为一名技术从业人员,性能优化是每个人的必修课 就像大学时期给漂亮妹子修电脑的绝招就是"重启电脑一样",性能优化也有自己的必杀技 你一定听过一句话:性能不够,缓存来凑!对,你没听错 ...

  6. 高并发秒杀系统解决方案(银行产品秒杀系统)

    场景引入 什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到.对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性, ...

  7. 高并发下秒杀促销活动,你必须知道的9个细节

    前言 高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个 ...

  8. Redis解决高并发(秒杀抢红包)

    1,Redis 丰富的数据结构(Data Structures) 字符串(String) Redis字符串能包含任意类型的数据 一个字符串类型的值最多能存储512M字节的内容 利用INCR命令簇(IN ...

  9. PHP高并发商品秒杀问题的解决方案

    前言 秒杀会产生一个瞬间的高并发,使用数据库会增加数据库的访问压力,也会降低访问速度,所以我们应该使用缓存,来降低数据库的访问压力: 可以看出这里的操作和原来的下单是不一样的:产生的秒杀预订单不会马上 ...

最新文章

  1. 在struts框架下实现文件的上传
  2. js解析json字符串数组
  3. boost::type_erasure::dereferenceable相关的测试程序
  4. 【渝粤题库】广东开放大学 网络营销基础与实践 形成性考核 (2)
  5. c+ +三角函数_C ++中的三角函数
  6. 认真测试直播软件,直播这么火,你知道怎么测试直播软件吗?
  7. 《上市公司信息披露电子化规范》简介
  8. 怎么去除三角下拉_用什么方法可以有效去除外墙涂料?
  9. VMware9 绿色破解版 下载地址
  10. 百度站点属性怎么设置?PC移动站/独立移动站/自适应/代码适配有什么区别? 404状态码和404页面有什么区别?对SEO有什么影响百度快照投诉不了怎么办(已经解决)提交反馈的按钮变成了灰色
  11. 第一代电子计算机使用的逻辑部件是( ),第一代电子计算机使用的逻辑部件是
  12. 零碎知识点之二:循环平稳信号
  13. Silverlight游戏设计(Game Design):(十五)如果还有梦(完)
  14. 会聊天、提醒、撩妹的Python微信机器人你肯定没见过
  15. 攒机笔记二(cpu)
  16. 关于2006年度全国土地登记代理人职业资格考试工作的通知
  17. 网络游戏运营数据分析二
  18. 计算机windows7显卡怎么检测,windows系统怎么查看自己电脑的显卡?
  19. 机电工程常用材料(二)
  20. idea常用的快捷键(黑马培训班)

热门文章

  1. 深入理解Java虚拟机:jvm内存模型jdk1.8
  2. UG/NX 二次开发(C#)自动出2D零件图(标准件配置Bata版)
  3. p2p显示kad能连接 服务器未连接,P2P连不上kad网络怎么办
  4. UML画图文档之汇总
  5. linux安装php程序下载,Linux安装PHP
  6. springboot 如来佛祖,永无bug
  7. 上三角矩阵下三角矩阵
  8. 已婚的女性突然开始拼命努力挣钱是为了什么?
  9. 2021-05-10 关于vant按钮小程序点击后出现灰色背景去除方式
  10. javascript压缩上传图片