Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann das Produkt-Super-Phänomen bei der Verwendung von Redis Flash Sale gelöst werden?

Wie kann das Produkt-Super-Phänomen bei der Verwendung von Redis Flash Sale gelöst werden?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-10-18 08:41:551619Durchsuche

Kürzlich habe ich eine Flash-Sale-Veranstaltung durchgeführt und aus Gründen der Leistung und Reaktionsgeschwindigkeit habe ich Redis verwendet. Beim Schreiben habe ich besonders darauf geachtet, übernatürliche Phänomene zu verhindern. Ich habe die optimistische Sperre (Cas) verwendet, die auf der Redis-Theorie basiert. Ich dachte, dass dieses Problem behoben werden sollte, aber es trat immer noch auf und um Hilfe gebeten. Der spezifische Code lautet ungefähr wie folgt:

<code><?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;  
    }  
}  
?>  
</code>
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
Vorheriger Artikel:Gemischtes PHP und HTMLNächster Artikel:Gemischtes PHP und HTML