php redis 秒杀demo
$redis = new Redis(); $redis->connect("127.0.0.1", "6379");$redis->select(1); //抢购成功列表 //var_dump($redis->lrange("miaosha",0,100));die; $redis->flushdb();//第一步,先加商品库存加入列 //设置库存数量 $goods_number =100; //将100件商品存入redis列表中 for($i=0;$i < $goods_number; $i++ ){//lpush从列表的头部添加元素$redis->lPush("goods_store",1); } //返回列表的goods_store的长度 echo $redis->lLen("goods_store")."<br/>";//第二步,抢购开始,设置库存的缓存周期(s) //设定一个key的活动周期s $redis->setTimeout("goods_store",60);//第三步,下单,下单前判断redis队列库存量 //从列表的头部删除一个元素,返回删除的元素 $n = 0; //验证 $i = 1000; //模拟多少人 while ($i--) {$n++;//用户随机$uid = mt_rand(1, 999999);$counts_good=$redis->lPop("goods_store"); if (!$counts_good ) {echo "用户:".$uid."秒杀失败"; } //下单 //设置秒杀成功队列$redis_name = "miaosha";if ( $redis->lLen($redis_name) < $goods_number){$redis->rPush($redis_name, $uid);echo "用户:" . $uid . "秒杀成功" . $n . "<br/>";}} echo "<b style='color:red;'>秒杀成功总数:".$redis->lLen($redis_name)."</b>";
转载于:https://www.cnblogs.com/keta/p/8560042.html
php redis 秒杀demo相关推荐
- Redis实战demo
Redis实战Demo 说明:本项目来自于学相伴飞哥的Redis教程:https://www.kuangstudy.com/,课程优质,收获很大! 项目gitee地址: https://gitee.c ...
- Redis 秒杀案例
Redis 秒杀案例 文章目录 Redis 秒杀案例 实现 ab工具模拟并发 超卖和超时问题解决 配置JedisPool连接池来解决超时问题 利用乐观锁淘汰用户,解决超卖问题 库存遗留问题解决 什么是 ...
- 保姆级redis6全流程学习和redis秒杀全流程
文章目录 前言 一.redis解决的问题 1.1.1解决session共享问题 1.1.2降低io读操作 1.2.1nosql数据库的特点 1.2.2 NoSQL的适用场景 1.2.3 NoSQL不适 ...
- Redis 秒杀实战
原文链接:https://www.cnblogs.com/chenyanbin/p/13587508.html 已原创授权 为啥写这个微信抢红包项目呢,公司 0202 年 08 月 22 日,公司周年 ...
- PHP redis秒杀返回结果,php结合redis实现高并发下的抢购、秒杀功能
抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...
- redis 秒杀成功 mysql_如何使用Redis实现秒杀
如何使用Redis实现秒杀 发布时间:2020-07-15 14:33:30 来源:亿速云 阅读:150 作者:Leah 如何使用Redis实现秒杀?很多新手对此不是很清楚,为了帮助大家解决这个难题, ...
- 头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计
头条Java一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select.epoll 的区别?底层的数据结构是什么? 6 ...
- Redis秒杀功能设计与实现
前言 抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了 抢购中的几个常见问题 如何设计 ...
- mysql慢查询面试题_头条Java岗3面入职:事务+慢查询SQL+Redis+秒杀设计面试题等
一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select.epool 的区别?底层的数据结构是什么? 6.mysql ...
- maven+ssm+redis配置demo
前言:菜鸡一枚,本来想把redis配置在aop中,结果aop一直没配置好,只好把redis部分写到service层. 希望大家有问题或者有什么改进的能给我留言. pom文件,由于参考了很多网上的方法, ...
最新文章
- 如何导出NK.bin中的内容
- tensorflow.GraphDef was modified concurrently during serialization
- kindeditor编辑器和图片上传独立分开的配置细节
- 论降价就服拼多多!618大促 iPhone最高降幅2811元
- 3项目估算表_浮动油封生产项目可行性研究报告
- oracle多表嵌套查询使用,oracle sql 多表 嵌套子查询 连接查询, join where exist i...
- mysql5.1 系列 关于用户授权的一个bug
- CAP 原理这样理解最简单
- Officescan如何藉由修改用戶端機碼以開啟常用功能
- mysql在线修复主从同步
- unity3d-学习笔记19-卡牌游戏制作(战斗胜利界面,点击菜单栏出现其他选项以及对应功能,实现能量卡消耗蓝条)
- 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
- list()与tolist()的区别
- 《惊奇队长》全球IMAX影院劲收3610万美元
- UVa 10382 - Watering Grass
- Code jam 2008 practice A
- iOS QRcode识别及相册图片二维码读取识别
- awesome-android-tips
- 钙钛矿量子点异质CdSe/CdS/核-壳结构和MAPbI3/PbS晶体结构
- 新型勒索软件PYSA浅析,又要如何防御??
热门文章
- 文字处理技术:形状绕排的难点
- 软件基本功:linux/windows的头文件互相包含,大哥你这是什么创新?
- error: ac_nonexistent.h: No such file or directory
- 为什么每个人都有发旋?
- setitime和相关函数
- 爬虫获取::after_这种反爬虫手段有点意思,看我破了它!
- mysql编译方式查询_源码编译mysql及其各种查询总结
- VS C++ 控制台----暂停的方法
- Windows下编译CMake源码(Opencv源码编译)
- linux 如何访问weblogic console,怎么修改weblogic console登陆的用户名和密码