是不是redis分布式锁还是会有一人两单问题啊。比如用户第一次抢购由于业务卡顿,导致锁过期失效了。这个用户又发了一次请求得到了锁,又执行了一次抢购。这不就两单了吗。后面讲的redisson,用了watchdog如果你阻塞太久也会释放锁,不还是会导致一人两单
全部评论
redisson作用是自动续期,可重入和可重试。一人一单和加不加锁没太大关系,把“判断库存->判断用户下单次数->扣减库存”打成一个原子操作是一人一单的关键。
3 回复 分享
发布于 2025-03-27 16:16 广东
redis分布式锁并不能完全保证这个 如果需要高可用 强一致性 需要上zookeeper或者etcd
1 回复 分享
发布于 2025-03-25 11:53 广东
锁到期需要进行补偿操作吧
点赞 回复 分享
发布于 2025-03-28 17:57 广东
不用锁也能一人一单
点赞 回复 分享
发布于 2025-03-27 11:13 上海
redis分布式锁是在redis+lua脚本原子性判断库存充足了之后异步线程创建订单时的第二个保障,虽然 Redis + Lua 保证了库存的原子性,但是如果订单创建失败(例如数据库异常),库存已经减少了,这可能会导致实际库存与数据库库存不一致。 优化: 双写一致性保障:使用 事务消息(RocketMQ/RabbitMQ 的事务特性),先预减库存,再落库成功后确认库存扣减,否则回滚。
点赞 回复 分享
发布于 2025-03-19 17:58 河南
加上事务就行了吧
点赞 回复 分享
发布于 2025-03-15 13:25 辽宁
虎哥说了加不加锁没有影响
点赞 回复 分享
发布于 2025-03-02 22:10 安徽
问题是黑马点评没用分布式锁啊
点赞 回复 分享
发布于 2025-03-02 22:10 安徽
所以需要业务保障幂等性
点赞 回复 分享
发布于 2025-03-02 17:05 安徽

相关推荐

01-05 18:00
嘉应学院 Java
七牛云头号黑子:一个并发项目+一个轮子项目,两个项目即可,有开源/博客可以写,没内容别写。3段实习没一个有含金量的,3个项目没一个并发项目,第一个tob项目业务方面也不可能用的是这个技术,一眼假。第二个项目,一个公司得多差劲需要你来重构权限模块,订单模块和优惠券模块你也做了,咋可能,很多公司订单模块就是直接独立出来的,要么项目不行,要么你在吹。第三个项目,大部分都在讲对接第三方和SpringAI框架的能力,这东西按照文档对这写就写出来了,没啥难度,没亮点。通病:项目描述全是在讲技术,没有讲清楚为什么要做这个,原技术是什么?基于什么考量替换的技术。实习内容明显包装痕迹且东一块西一块,纯拼凑。建议:去做并发项目,轮子项目,试着做点开源和博客,别再去小公司实习了,没意义,先投中厂,27届还早,加油。大概看了一下可能有说的不对的地方。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务