使用 redis 减少 秒杀库存 超卖思路

由于数据库查询的及插入的操作 耗费的实际时间要耗费比redis 要多,

导致 多人查询时库存有,但是实际插入数据库时却超卖

redis 会有效的减少相关的延时,对于并发量相对较少的 可以一用

使用 redis 减少 秒杀库存 超卖思路

 

public function buy($goods_id = 0){

if(!$goods_id){

die("商品不存在!");

}

$redis = new Redis();

$redis->connect('127.0.0.1',6379);

$stock = 0;

if(!$redis->get("gid".$goods_id)){

$stock = get_stock($goods_id); //从数据看获取实际库存

$redis->set("gid".$goods_id,$stock);

}else{

$stock = $redis->get("gid".$goods_id);

}

if($stock > 0){

//逻辑操作 代码

//coding here...

set("gid".$goods_id,$stock-1);

}else{

die("已卖完!");

}

}