Maison > développement back-end > tutoriel php > Redis经典案例分享之商品秒杀和购物车

Redis经典案例分享之商品秒杀和购物车

巴扎黑
Libérer: 2023-03-15 09:46:01
original
1977 Les gens l'ont consulté


摘要:商品秒杀案例

秒杀案例:

<?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;  
        }  
    }
Copier après la connexion

根据这个原理,我们可以watch 来写商品的购物车,支付订单之前watch 商品的标志位(商品数量等于0的时候变化),标志位变化则支付失败。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal