hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP问题 - 正文 请牢记本站网址www.sosophp.cn

php接口怎样处置惩罚并发【php题目】

2019-11-26PHP问题搜搜PHP网67°c
A+ A-
关于商品抢购等并发场景下,可能会涌现超卖的征象,这时刻就需要处置惩罚并发所带来的这些问题了

在PHP语言中并没有原生的供应并发的处置惩罚计划,因而就需要借助其他体式格局来完成并发掌握。

计划一:运用文件锁排它锁

flock函数用于猎取文件的锁,这个锁同时只能被一个线程猎取到,别的没有猎取到锁的线程要么壅塞,要么猎取失利

在猎取到锁的时刻,先查询库存,假如库存大于0,则举行下定单操纵,减库存,然后开释锁 (引荐进修:PHP视频教程)

计划二:运用Mysql数据库供应的消极锁

Innodb存储引擎支撑行级锁,当某行数据被锁定时,其他历程不能对这行数据举行操纵

先查询并锁定行:

select stock_num from table where id=1 for update
if(stock_num > 0){
//下定单
update table set stock_num=stock-1 where id=1
}

计划三:运用行列

将用户的下单要求顺次存入一个行列中,背景用一个零丁的历程处置惩罚行列中的下单要求

计划四:运用Redis

redis的操纵都是原子性的,能够将商品的库存存入redis中,下单之前对库存举行decr操纵,假如返回的值大于即是0等能够下单,不然不能下单,这类体式格局效力较高

if(redis->get('stock_num') > 0){
 stock_num = redis->decr('stock_num')
 if(stock_num >= 0){
 //下定单
 }else{
 //库存不足
 }
}else{
//库存不足
}

以上就是php接口怎样处置惩罚并发的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php接口怎样处置惩罚并发【php题目】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: