新手问题 高并发的电商

stargwq · 2020年08月11日 · 最后由 zhaoyshine 回复于 2020年08月14日 · 2765 次阅读

请教大家一个问题,高并发的电商锁库存好呢?还是锁用户好呢?还是同时锁呢?thx

不锁,用 redis

@mizuhashi 用 redis 做分布式锁?

steve 回复

就一个库存数字,每次下单 -1 就好,下完再存回数据库

@mizuhashi 存回数据库还是要面对高并发的问题。比如请求 A 比请求 B 先下单 redis 扣库存,但存数据库 A 又在 B 后面

不会的,redis 做队列,保存到数据库的时机也不是说更改一次库存就存一次,持久化到数据库可以设定成了每 6 小时或每天等等。不过这么做就要配置 redis 的持久化方案为 AOF 就不会出现可能的库存数据丢失的问题。

steve 回复

redis 是串行的,redis 里面扣了 100 个库存就肯定是卖出了 100 个,存回数据库也肯定是 100 个

jicheng1014 回复

👍,说的很清楚,如果锁超时,我就认为下单失败,直接扔一个队列里回库存,强制释放锁

秒杀,不用每人都来算一遍的,请求刚进 Controller 你就过滤一大半去,剩下的人,再真正让他们抢呗,反正都是卖,卖谁都一样,看运气了,而且服务器和数据库压力也小

stargwq 关闭了讨论。 08月17日 15:46
需要 登录 后方可回复, 如果你还没有账号请 注册新账号