php 使用redis實現秒殺場景


<?php
//php秒殺 redis並發處理
function miaoshao(){
    
    $redis = new Redis;//diy redis操作類
    //連接
    $redis->connect('127.0.0.1', 6379,30);
    //設置密碼
    $redis->auth('junyi');
    //獲取庫存出售的數量,默認為空
    $kuchun = $redis -> get('kucun');
    
    $total  = 100;
    
    if ($kuchun < $total){
        //有庫存
        $redis -> watch('kucun');
        //開啟事務
        $redis->multi();
        $redis->set("kucun",$kuchun+1);
        //執行事務
        $result = $redis->exec();
        if($result){
            
            //剩余數量
            $number = $total - ($kuchun +1);
            
            //$openid 用戶id
            $openid = $number;
            $redis-> hset("list","user_".$openid,$kuchun);
            //獲取搶購成功的用戶
            $data = $redis-> hgetall('list');
            var_dump($data);
            var_dump($number);
        }else{
            var_dump('手氣很差哦,再試一下!');
        }
        
    }else{
        var_dump('已經被搶光了');
    }
}

 

 

原文:http://www.liusongs.com/archives/419


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM