PHP redis 秒殺

require_once "db.php";


$redis = new redis();

$redis->connect("127.0.0.1",6379);
$limit = 1; //庫存3個
$redis->watch("watchkey");//命令監事、監視銷量
$watchkey = $redis->get("watchkey"); ///獲取一個建的值
if($watchkey >= $limit){
    echo "活動結束";
    exit;
}
$redis->multi();    //開啓事務
$redis->set("watchkey",$watchkey+1); //成功了才+1
sleep(2);
$result = $redis->exec(); //返回成功或者失敗
if($result){
        //準備SQL語句
        $sql = "select * from zichaxun where name='pc'";
        //執行SQL語句
        $query = $con->query($sql);
        $arr = $query->fetch_array();
        if($arr["num"]>0){
            $sql = "update zichaxun set num = num -1 where name ='pc'";
            $res  = $con->query($sql);
            if($res){
                echo "庫存減少";
            }else{
                echo '失敗';
            }
        }else{
            echo "沒有庫存";
        }
        //釋放資源
        $query->close();
        //關閉連接
        $con->close();


}else{
    echo "失敗";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章