分享

Redis+Thinkphp=》抢票

 丶平上 2016-12-09


1 超大流量的抢票(比如地铁,限时抢购这样的)
   数据千万不要往数据库存储 ;数据库容易发生崩溃
   抢票 (1)先建一个redis 存储一等奖
           (2)建一个redis 存储 二 等奖
           (3)第三个 redis 存储 单一的 OpenID或者手机号,唯一编号等;
          特别备注: 可以用 Set集合存储,插入重复的OpenID 返回 0 ;正确返回 插入个数1,2,3,4。。。。。
          (4)第四个 redis 存储 openid,ticketsID,返回用户 所获得的 票ID
   最后一次性到处 第四个redis记录 存储到数据库作为 记录/*
 * 是否已经抢票
*/
public function is_fight_tickets($fightticktes,$openid){
    $where['openid'] = $openid;
    $where["telephone"] = array('exp', 'is not NULL');
    $ticketsresults = $fightticktes ->where($where) -> find();
    ///判断是否已经购票
    if(!empty($ticketsresults)){
        return $ticketsresults;
    }else{
        $allowtickets = $this->allowtickets("");
        ///返回数字 或者 false
        if($allowtickets){
            ////插入
        }else{
        }  
    }
}
//允许
public function allowtickets($openid){
    $Cache = Cache::getInstance('Redis');
    $result  =$Cache->lpop("fight_tickets:ticketlist");
    return $result;
}
public function createtickets(){
    $Cache = Cache::getInstance('Redis');
    ///$hashset = "fight_tickets:";
    for($i=10;$i<20000;$i++){
        $Cache->rpush("fight_tickets:ticketlist",$i);
        echo $i;
    }
 
    SADD key member [member ...]
    将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
    假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
    当 key 不是集合类型时,返回一个错误。
 
    返回值:
      被添加到集合中的新元素的数量,不包括被忽略的元素。
    # 添加单个元素
    redis> SADD bbs "discuz.net"
    (integer) 1
    # 添加重复元素
    redis> SADD bbs "discuz.net"
    (integer) 0
    # 添加多个元素
    redis> SADD bbs "tianya.cn" "groups.google.com"
    (integer) 2
    /*
    从list 头部压入一个元素   先进后出
    lpush mylist "word"
    lpush mylist "ehll"
    lrange mylist 0 -1    显示  ehll    word
    */
    /*
    rpop  从list 尾部删除一个元素,并返回删除的元素
    ///rpop  mylist
    //$times = $Cache->get($hashset);
    //$key = "集合数据iD";
    //$Cache->zrem($hashset,$key);*/
 
 
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多