<?php
 
//redis watch 加 事务实现秒杀
  
$redis = new redis();  
$result = $redis->connect('10.10.10.119', 6379);
 
$redis->watch("mywatchkey"); //必须先watch 后get
$mywatchkey = $redis->get("mywatchkey");
 
$rob_total = 100;   //抢购数量 
 
if($mywatchkey<$rob_total){
      
    $redis->multi();  
      
    //设置延迟,方便测试效果。  
    sleep(5);
    
 //插入抢购数据  
    $redis->hSet("mywatchlist", "user_id_".mt_rand(1, 9999),time());  
    $redis->set("mywatchkey", $mywatchkey+1);  
 
    $rob_result = $redis->exec();
 
    if($rob_result){  
        $mywatchlist = $redis->hGetAll("mywatchlist");  
        echo "抢购成功!<br/>";  
        echo "剩余数量:".($rob_total-$mywatchkey-1)."<br/>";  
        echo "用户列表:<pre>";  
        var_dump($mywatchlist);  
    }else{  
        echo "手气不好,再抢购!";exit;  
    }
 
}
 
?>

最新文章

  1. 第五章——搭建S3C6410开发板的测试环境
  2. 关于Linux与windows传递文件乱码问题
  3. 关于Guid
  4. Leetcode 58 Length of Last Word 字符串
  5. MyBatis XML 映射配置文件
  6. Android activity_main.xml删除边缘距离,充满屏幕
  7. PHP使用SOAP调用.net的WebService数据
  8. [Papers]NSE, $u$, Lorentz space [Sohr, JEE, 2001]
  9. BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
  10. 开源语音识别系统 Simon
  11. wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码
  12. CSS3 radial-gradient 径向渐变属性 实现重复半圆角内边框
  13. target-densitydpi=device-dpi会使其他ui插件布局变小
  14. 腾讯短信服务精简版(PHP )
  15. Wireshark显示结果过滤基本语法
  16. JavaScript学习day01
  17. cookie的认识
  18. 关于mybatis中传入一个List,字符串数组,或者Map集合作为查询条件的参数
  19. 用SAX解析xml文件,java
  20. bash:command not found解决方法

热门文章

  1. 算法笔记--可撤销并查集 &amp;&amp; 可持久化并查集
  2. NLP传统基础(2)---LDA主题模型---学习文档主题的概率分布(文本分类/聚类)
  3. P1006 传纸条[棋盘DP]
  4. 分布式文件系统FastDFS架构认知
  5. 捕获错误并处理try-catch
  6. 15、Spring Boot 2.x 集成 Swagger UI
  7. How to change the default browser to debug with in Visual Studio 2008?
  8. python基础-垃圾回收机制
  9. nodejs基础(回调函数、模块、事件、文件读写、目录的创建与删除)
  10. CF1197A