亲测,用ab 压测并发500 请求4000 无超卖!

header("content-type:text/html;charset=utf-8");

$redis = new redis();

$result = $redis->connect('127.0.0.1', 7379);

$redis->watch("mywatchlist");

$len = $redis->hlen("mywatchlist");

$rob_total = 100; //抢购数量

if ($len < $rob_total) {

$redis->multi();

$redis->hSet("mywatchlist", "user_id_" . mt_rand(1, 999999), time());

$rob_result = $redis->exec();

file_put_contents("log.txt", $len . PHP_EOL, FILE_APPEND);

if ($rob_result) {

$mywatchlist = $redis->hGetAll("mywatchlist");

echo "抢购成功!
";

echo "剩余数量:" . ($rob_total - $len - 1) . "
";

echo "用户列表:

";

var_dump($mywatchlist);

} else {

echo "手气不好,再抢购!";

exit;

}

} else {

echo "已卖光!";

exit;

}

?>

java redis 商品秒杀_使用redis秒杀出现产品超发现象求解?相关推荐

  1. redis 主从配置_应用 | Redis实现 主从,单例,集群,哨兵,配置应用

    小小经过一天的休整 公众号更新规则:每周六将会停更一次,进行短期的休整,其余时间继续每天一更. 思维导图如下 Redis 主从配置 这里配置Redis主从 什么是主从 主从复制,是指把一台Redis服 ...

  2. redis 统计数量_使用redis实现在线人数统计

    实现方案 用户登录的时候往redis里面存储一个值(对应的在线人数增1),这个值的key值是和这个用户的唯一识别码(例如userId或者username)有联系,在存储的同时,设置其对应的生命周期,比 ...

  3. mysql高并发秒杀_高并发秒杀解决方案(转载)

    今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过:但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识.今天就我的一些理解,整理一下 ...

  4. redis怎么开启_关于Redis数据库入门必备的学习点

    Redis数据库 1.完全基于内存读写的非关系型数据库(支持持久化存储) [1]key:value键值对方式组织数据,所有的键值对都有设置过期的功能<弱事务型的数据库>: [2]核心操作都 ...

  5. java redis实现抢购_【抢购/秒杀】redis实现高并发下的抢购/秒杀功能

    问题: 抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢? 常规写法: 查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否 ...

  6. java redis id生成器_基于redis的分布式ID生成器

    项目地址 基于redis的分布式ID生成器. 准备 首先,要知道redis的EVAL,EVALSHA命令: 原理 利用redis的lua脚本执行功能,在每个节点上通过lua脚本生成唯一ID. 生成的I ...

  7. java redis延迟队列_基于redis实现的延迟消息队列

    delay-queue redis实现延迟消息队列 需求背景 最近在做一个排队取号的系统 在用户预约时间到达前XX分钟发短信通知 在用户预约时间结束时要判断用户是否去取号了,不然就记录为爽约 在用户取 ...

  8. java分布式调度框架_基于Redis的分布式Java任务执行和调度框架

    Redisson是使用Redis实现分布式任务执行和调度的Java开源项目,它是通过标准JDK的ExecutorService和ScheduledExecutorService API实现的,被提交的 ...

  9. java 统计阅读量_使用redis实现【统计文章阅读量】及【最热文章】功能

    1.视图函数 # 不需要登录装饰器,匿名用户也可访问 def article_detail(request, id, slug): # print(slug,id) article = get_obj ...

最新文章

  1. java对象的强引用,软引用,弱引用和虚引用
  2. IE浏览器下ajax缓存导致数据不更新的解决方法
  3. SQL UNION 操作符
  4. 在SQL Server 2005 Express 中添加报表服务后 (Business Intelligence Development Studio) vs2005 加载程序集问题解决办法...
  5. EventProcessor与WorkPool用法--可处理多消费者
  6. 打印结果和调试结果不一样(C语言)
  7. [基础篇]ESP32-RTOS-SDK教程(一)之Windows环境搭建
  8. Python中的yield详解
  9. CSS串联和后代选择器
  10. linux 升级centos7,Linux之从Centos 6.x 升级Centos7
  11. GJB 8114编码标准检查软件产品简介
  12. Python数据分析与挖掘实战总结
  13. TopoJSON格式规范说明
  14. Excel技巧—开始菜单之剪切的高级用法
  15. 永恒python图片_第1章 python基础
  16. 项目优化:当使用redis减少数据库压力时,遇到redis写入失败,造成读取数据问题的解决方案
  17. 2020FME博客大赛——地下管线-雨水管网 三维可视化
  18. java线程堆栈nid.tid_java排查一个线上死循环cpu暴涨的过程分析
  19. 指尖江湖服务器维护,指尖江湖备受国内外媒体好评,服务器问题已解决,玩家:洛风好用...
  20. 使用 APlayer 实现音乐播放器

热门文章

  1. python include的功能_在Python的Config中增加Include功能
  2. load out mysql,快速的mysql导入导出数据(load data和outfile)
  3. matlab randn state 2,MATLAB?中的randn函数
  4. springboot整合shiro_Springboot整合Shiro:简洁的身份认证
  5. 数据清洗-python实践
  6. 【技巧】搜狗输入法特殊技巧
  7. spring boot 与redis 整合
  8. 【Luogu P2781】 传教
  9. Hibernate merge和update的区别
  10. TIJ摘要:访问控制权限