Heim  >  Artikel  >  Backend-Entwicklung  >  Redis klassischer Case-Sharing-Produkt-Flash-Sale und Warenkorb

Redis klassischer Case-Sharing-Produkt-Flash-Sale und Warenkorb

巴扎黑
巴扎黑Original
2017-08-16 10:03:531933Durchsuche


Zusammenfassung: Produkt-Flash-Sale-Fall

Flash-Sale-Fall:

<?php  
    header("content-type:text/html;charset=utf-8");  
    $redis = new redis();  
    $result = $redis->connect('10.10.10.119', 6379);  
    $mywatchkey = $redis->get("mywatchkey");  
    $rob_total = 100;   //抢购数量  
    if($mywatchkey<$rob_total){  
        $redis->watch("mywatchkey");  
        $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 class="brush:php;toolbar:false">";  
            var_dump($mywatchlist);  
        }else{  
            echo "手气不好,再抢购!";exit;  
        }  
    }

Nach diesem Prinzip , wir können Watch wird verwendet, um den Warenkorb des Produkts zu schreiben. Beobachten Sie die Markierung des Produkts (sie ändert sich, wenn die Menge des Produkts gleich 0 ist. Wenn sich die Markierung ändert, schlägt die Zahlung fehl).


Das obige ist der detaillierte Inhalt vonRedis klassischer Case-Sharing-Produkt-Flash-Sale und Warenkorb. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn