当前位置: 首页 > wzjs >正文

赣州网站建设公司蜘蛛抓取网站模块原理

赣州网站建设公司,蜘蛛抓取网站模块原理,wordpress搜索优化,白云区建设局网站文章目录 什么是超卖问题?推荐策略:Redis原子操作(Redis incr)乐观锁lua脚本利用Redis increment 的原子操作,保证库存数安全update使用乐观锁LUA脚本保持库存原子性 什么是超卖问题? 在并发的场景下,比如商城售卖商品…

文章目录

  • 什么是超卖问题?
  • 推荐策略:Redis原子操作(Redis incr)+乐观锁+lua脚本
    • 利用Redis increment 的原子操作,保证库存数安全
    • update使用乐观锁
    • LUA脚本保持库存原子性

什么是超卖问题?

在并发的场景下,比如商城售卖商品中,一件商品的销售数量>库存数量的问题,称为超卖问题。主要原因是在并发场景下,请求几乎同时到达,对库存资源进行竞争,由于没有适当的并发控制策略导致的错误。

推荐策略:Redis原子操作(Redis incr)+乐观锁+lua脚本

利用Redis increment 的原子操作,保证库存数安全

  1. 先查询redis缓存中是否有库存信息,如果没有就去数据库查,这样就可以减少访问数据库的次数。获取到后把数值填入redis,以商品id为key,数量为value。 还需要设置redis对应这个key的超时时间,以防所有商品库存数据都在redis中。
  2. 比较下单数量的大小,如果够就做后续逻辑。
  3. 执行redis客户端的increment,参数为负数,则做减法。因为redis是单线程处理,并且因为increment让key对应的value减少后返回的是修改后的值。有的人会不做第一步查询直接减,其实这样不太好,因为当库存为1时,很多做减3,或者减30情况,其实都是不够,这样就白减。
  4. 扣减数据库的库存,这个时候就不需要再select查询,直接乐观锁update,把库存字段值减1 。
  5. 做完扣库存就在订单系统做下单。

update使用乐观锁

updateProduct方法中执行的sql如下:

update Product set count = count - 购买数量 where id = 商品id and count - 购买数量 >= 0 and version = 查到的version;

虽然redis已经防止了超卖,但是数据库层面,为了也要防止超卖,以防redis崩溃时无法使用或者不需要redis处理时,则用乐观锁,因为不一定全部商品都用redis。

利用sql每条单条语句都是有事务的,所以两条sql同时执行,也就只会有其中一条sql先执行成功,另外一条后执行。

LUA脚本保持库存原子性

扣减redis的库存时,最好用lua脚本处理,因为如果剩余1个时,用户买100个,这个时候其实会先把key increase -100就会变负99。
所以用lua脚本先查询数量剩余多少,是否够减100后,再去减100。

本人水平有限,有错的地方还请批评指正。

什么是精神内耗?
简单地说,就是心理戏太多,自己消耗自己。
所谓:
言未出,结局已演千百遍;
身未动,心中已过万重山;
行未果,假想灾难愁不展;
事已闭,过往仍在脑中演。


文章转载自:

http://3Xp0ZNoM.rfwrn.cn
http://q1cIwOfL.rfwrn.cn
http://fOgaZ3pM.rfwrn.cn
http://xcw7ZWPp.rfwrn.cn
http://VlJ4cSsx.rfwrn.cn
http://jEJ5WGVI.rfwrn.cn
http://asbX3K9e.rfwrn.cn
http://PdKlh22P.rfwrn.cn
http://sfIiQ0QY.rfwrn.cn
http://cXpwu45h.rfwrn.cn
http://bdb2j03Z.rfwrn.cn
http://QoIWGvgx.rfwrn.cn
http://4N51u1rm.rfwrn.cn
http://SClkPY0q.rfwrn.cn
http://l08djBUZ.rfwrn.cn
http://uXvrwjag.rfwrn.cn
http://kuYgEVvR.rfwrn.cn
http://NwNvD8BC.rfwrn.cn
http://CMQaI3bZ.rfwrn.cn
http://ud3vfsml.rfwrn.cn
http://WaqUtDSU.rfwrn.cn
http://ctjnUEsT.rfwrn.cn
http://ThOfBpnq.rfwrn.cn
http://OXJf1gIR.rfwrn.cn
http://o9PbNmrw.rfwrn.cn
http://BZjZpoSx.rfwrn.cn
http://C5BjxMEm.rfwrn.cn
http://lOD65HzA.rfwrn.cn
http://jvtrALsz.rfwrn.cn
http://TICqeXv4.rfwrn.cn
http://www.dtcms.com/wzjs/709622.html

相关文章:

  • 微商城网站开发制作网络营销与传统营销的区别
  • 汽车网站建设公司php 企业 网站
  • 电影采集网站怎么做seo网站推广广告
  • 常见的网站空间服务商淄博做网站市场
  • 虾皮购物网站怎么做wordpress5.2自动保存
  • 网站的备案在哪备案吗全国开发一个网站需要多少钱
  • 广州网站建设制作上海公司买新能源车需要什么条件
  • 纯静态网站索引怎么做微网站 获取手机号
  • 网站开发工作室挣钱吗wordpress头像大小不一样
  • 百度怎么自己做网站吗产品开发流程梳理
  • 网页设计与制作教程教科书关键词整站优化公司
  • 太原制作网站的公司gif图标网站
  • 药房网站模板100款夜间必备软件app
  • 网站设计面试问题电子设计全国网站建设
  • 松江品牌网站建设深圳平面广告设计公司
  • 做一个一般的网站需要多少钱建立网站的方法
  • 阜城网站建设价格网站界面友好
  • 建设银行网站怎么修改手机号码吗网站的基本组成部分有哪些内容
  • 网站改版原因物流网站建设策划书的总结
  • 网站建设的项目描述一起作做业网站
  • 企业网站建设的劣势做一个公司官网需要多少钱
  • 厂家网站怎么做网站建设上传服务器步骤
  • 济南做门户网站开发公司怎样做婚恋网站
  • 新站秒收录接口电影网站规划
  • 网站建设开发的流程沂源网站
  • 餐饮网站建设方案书wordpress广告代码在哪里
  • 加快网站平台建设网站增加聊天
  • wordpress 移动 建站游戏开发是什么
  • 好的网页设计网站推荐绣花图案设计网站
  • 成都海鸥手表网站外贸网址建站