本篇文章给大家带来了关于Redis的相关知识,其中主要介绍了关于实现秒杀的相关内容,包括了秒杀逻辑、存在的链接超时、超卖和库存遗留的问题,下面一起来看一下,希望对大家有帮助。
推荐学习:Redis视频教程
1、秒杀逻辑
秒杀:解决计数器和人员记录的事务操作
- 1.uid和proid非空判断
- 2.连接redis
- 3.拼接key
- 库存key
- 秒杀成功用户key
- 4.获取库存,如果库存为null,秒杀还没开始
- 5.判断用户是否重复秒杀操作
- 6.判断商品数量,库存数量小于1,秒杀结束
- 7.秒杀过程
- 库存-1
- 把秒杀成功用户添加清单里面
2、存在问题
2.1、连接超时
原因:由于大量创建连接,十分消耗性能,并且有时获取连接不及时,出现连接超时的情况
2.2、超卖
在并发的情况下发生的,就是在输出没有库存(秒杀结束)后还有商品售出导致库存数量为负数。
2.3、库存遗留
使用乐观锁解决问题2之后,出现问题3
如果库存数量相对并发