欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php中使用redis实现秒杀

程序员文章站 2022-07-09 19:28:49

<?php
/**
* $producttotal 商品总数
* $productsellnum 已售商品数量
* $currentbuynum 当前购买数量
*/

//商品总数
$producttotal = 100;
//当前购买数量
$currentbuynum = 5;
try {
$redis = new redis();
$result = $redis->connect('127.0.0.1',6379);
if(!$result){
throw new exception('redis连接失败');
}
} catch (exception $e){
echo $e->getmessage();
die;
}

//监视 product_sell_num
$redis->watch('product_sell_num');
//已售商品数量
$productsellnum = $redis->get('product_sell_num');
//判断商品是否剩余
if($productsellnum + $currentbuynum <= $producttotal){
$redis->multi();
$redis->set('product_sell_num',$productsellnum + $currentbuynum);
$status = $redis->exec();
if($status){
//对购买信息处理
}else{
return "抢购失败";
}
}else{
return "抢购结束";
}