商品秒杀思路
注意:该文章内容仅为作者个人记录,欢迎提出建议
1读取redis(缓存中的库存)
2.根据缓存进行判断是否足够库存
3.执行数据操作
一、读取redis(缓存中的库存)
$goods_id = ""; //商品id
$stock = ""; //库存
$sale_num = 1; //销售数量
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('');
$stock = $redis->get($goods_id);
if (is_null($stock)) {
$stock = ""; //到数据库中获取库存
$redis->set($goods_id, $stock - 1);
//执行订单操作
//*****
} else {
//判断库存是否满足购买数量
if ($stock >= $sale_num) {
//1添加数据放到队列执行
//2执行订单操作
}else{
//库存不足 返回信息
}
}
高并发场景下我们还可以再加强并发量
1.当遇见redis穿透时,我们可以增加redis锁
2.当遇见redis雪崩时,我们可以把redis部署为分布式,集群