关于秒杀的三个问题

来源:7-6 使用本地标识减少redis请求

慕粉4100485

2020-06-26

老师,有两个问题,想问下。
1.redis预减库存哪里,假如一个用户点了10次以上,那缓存中的库存就为0了,别的用户在点秒杀同样商品,就会秒杀失败。但是实际最终,数据库中只减了一次。 这个redis数据库里的缓存,不需要更新吗?
2.假如秒杀过程有错误,redis中库存减少后,数据库并没有减库存,这样redis的库存是不是也需要更新?
3.mq的消费者,拿到消息后,为什么还要重新查数据库判断库存呢? 在redis预见库存的时候,跟缓存已经对比过一次了,个人理解,缓存中的库存是要比数据库少的,如果判断缓存减了1还大于0,消费出来的消息还要在判断一次库存吗?理解这时候的库存一定是大于0的

写回答

1回答

若鱼1919

2020-06-27

参考:https://git.imooc.com/coding-168/coding-168/src/master/%e8%af%be%e7%a8%8b%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98.docx

0
2
若鱼1919
回复
慕粉4100485
就是为了解决你说的一个人就把redis数量减成0
2020-06-28
共2条回复

Java秒杀系统方案优化 掌握海量访问通用解决方案

各种缓存/JSR303参数检

2695 学习 · 941 问题

查看课程