$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相关推荐

  1. Redis实战demo

    Redis实战Demo 说明:本项目来自于学相伴飞哥的Redis教程:https://www.kuangstudy.com/,课程优质,收获很大! 项目gitee地址: https://gitee.c ...

  2. Redis 秒杀案例

    Redis 秒杀案例 文章目录 Redis 秒杀案例 实现 ab工具模拟并发 超卖和超时问题解决 配置JedisPool连接池来解决超时问题 利用乐观锁淘汰用户,解决超卖问题 库存遗留问题解决 什么是 ...

  3. 保姆级redis6全流程学习和redis秒杀全流程

    文章目录 前言 一.redis解决的问题 1.1.1解决session共享问题 1.1.2降低io读操作 1.2.1nosql数据库的特点 1.2.2 NoSQL的适用场景 1.2.3 NoSQL不适 ...

  4. Redis 秒杀实战

    原文链接:https://www.cnblogs.com/chenyanbin/p/13587508.html 已原创授权 为啥写这个微信抢红包项目呢,公司 0202 年 08 月 22 日,公司周年 ...

  5. PHP redis秒杀返回结果,php结合redis实现高并发下的抢购、秒杀功能

    抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...

  6. redis 秒杀成功 mysql_如何使用Redis实现秒杀

    如何使用Redis实现秒杀 发布时间:2020-07-15 14:33:30 来源:亿速云 阅读:150 作者:Leah 如何使用Redis实现秒杀?很多新手对此不是很清楚,为了帮助大家解决这个难题, ...

  7. 头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计

    头条Java一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select.epoll 的区别?底层的数据结构是什么? 6 ...

  8. Redis秒杀功能设计与实现

    前言 抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了 抢购中的几个常见问题 如何设计 ...

  9. mysql慢查询面试题_头条Java岗3面入职:事务+慢查询SQL+Redis+秒杀设计面试题等

    一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select.epool 的区别?底层的数据结构是什么? 6.mysql ...

  10. maven+ssm+redis配置demo

    前言:菜鸡一枚,本来想把redis配置在aop中,结果aop一直没配置好,只好把redis部分写到service层. 希望大家有问题或者有什么改进的能给我留言. pom文件,由于参考了很多网上的方法, ...

最新文章

  1. 如何导出NK.bin中的内容
  2. tensorflow.GraphDef was modified concurrently during serialization
  3. kindeditor编辑器和图片上传独立分开的配置细节
  4. 论降价就服拼多多!618大促 iPhone最高降幅2811元
  5. 3项目估算表_浮动油封生产项目可行性研究报告
  6. oracle多表嵌套查询使用,oracle sql 多表 嵌套子查询 连接查询, join where exist i...
  7. mysql5.1 系列 关于用户授权的一个bug
  8. CAP 原理这样理解最简单
  9. Officescan如何藉由修改用戶端機碼以開啟常用功能
  10. mysql在线修复主从同步
  11. unity3d-学习笔记19-卡牌游戏制作(战斗胜利界面,点击菜单栏出现其他选项以及对应功能,实现能量卡消耗蓝条)
  12. 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
  13. list()与tolist()的区别
  14. 《惊奇队长》全球IMAX影院劲收3610万美元
  15. UVa 10382 - Watering Grass
  16. Code jam 2008 practice A
  17. iOS QRcode识别及相册图片二维码读取识别
  18. awesome-android-tips
  19. 钙钛矿量子点异质CdSe/CdS/核-壳结构和MAPbI3/PbS晶体结构
  20. 新型勒索软件PYSA浅析,又要如何防御??

热门文章

  1. 文字处理技术:形状绕排的难点
  2. 软件基本功:linux/windows的头文件互相包含,大哥你这是什么创新?
  3. error: ac_nonexistent.h: No such file or directory
  4. 为什么每个人都有发旋?
  5. setitime和相关函数
  6. 爬虫获取::after_这种反爬虫手段有点意思,看我破了它!
  7. mysql编译方式查询_源码编译mysql及其各种查询总结
  8. VS C++ 控制台----暂停的方法
  9. Windows下编译CMake源码(Opencv源码编译)
  10. linux 如何访问weblogic console,怎么修改weblogic console登陆的用户名和密码