1. 程式人生 > >使用 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("已賣完!");

}

}