Redis 实现高并发下的库存扣减(高频面试)

e7e7ac1ec464bc6c8f32b489ff354fed.png

若有收获,请记得分享和转发哦

简历中使用电商当项目经验已经非常普遍了,不管你是包装的还是真实的,起码要能讲清楚电商中常见的问题,比如库存的操作怎么防止商品被超卖。

在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。

解决方案

常见的解决方案有以下三种:

  1. 使用 mysql 数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。

  2. 还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量的去访问数据库来更新库存。

  3. 将库存放到 redis 使用 redis 的 incrby 特性来扣减库存。

分析

在上面的第一种和第二种方式都是基于数据来扣减库存。

e400ce55b689f296b696485bc6f2a7ab.png

02dfea1ae4f12588a4d10d6f59a3930e.png

40e781df5a835b4218beafc340f47009.png

a6562fd6321c9b9a938689c3d4c0b62c.png

42b35cf5c676e553e876b489afb97b19.png

fafe1e8af7e2eb4d2f3dcbd16c5586d4.png

e69e9ff3472c84802b6c2dfc4e9af575.png

368af60e9338e9f794bca473531d76e6.png

7b56c12efa034d8d3f615d58188f4dc3.png

bf7cc564f469b6b7bfeba4592336d541.png

5175309b363206512e46d7a3126af49f.png

8a935d42d23f279b1fb151d092dac35e.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值