zoukankan      html  css  js  c++  java
  • 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>";
  • 相关阅读:
    unity调用Android功能
    OnLevelWasLoaded 在脚本中执行顺序
    使用Sublime编写Shader
    将当前UI配置写入文件,并且恢复
    AssetBundle 点滴
    NGUI3.7的自适应问题
    Unity3D 消息框架设计
    Unity3D 任务系统设计
    Unreal 4
    基于DBLP的作者协作关系的挖掘
  • 原文地址:https://www.cnblogs.com/keta/p/8560042.html
Copyright © 2011-2022 走看看