《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
:black_large_square:
这段代码逻辑哪里限制了超卖的发生呢?
要限制超卖为什么不这样?
在你提问下面正好有个博客 博客:Redis 作为单线程 为什么我用它还是出现了超卖呢?
为什么不这么写呢?
3秒自动释放锁了?
你block 里面只是做了库存为空抛异常吗?减库存的操作有在里面做吗
建议你用LUA保证原子性,这个里面有完整详细的脚本
不知道你底层的锁怎么写的。是不是原子性操作。锁很容易发生时间间隙导致超卖。最简单的做法是利用redis单线程特性,decr命令来实现。
@奕鹏 看过你写的 Redis 作为单线程 为什么我用它还是出现了超卖呢?这个laravel 自带的锁就是调用lau脚本解锁的
laravel cache的原子锁你们都没用过吗.这不就是cache的原子锁,估计你下面执行的逻辑超过锁失效的时间了. 直接用闭包试试