摘要:商品秒杀案例
秒杀案例:
<?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>;
var_dump($mywatchlist);
}else{
echo 手气不好,再抢购!;exit;
}
}
根据这个原理,我们可以watch 来写商品的购物车,支付订单之前watch 商品的标志位(商品数量等于0的时候变化),标志位变化则支付失败。
以上就是redis经典案例分享之商品秒杀和购物车的详细内容。