在秒杀等高并发场景下,既要保证库存安全,也要拥有极高的系统性能。从存储结构上,很多同学会选用Redis,毕竟Redis的单线程操作特性,很好地避免了线程安全的问题,同时具备极高的读写性能。
我们先来看下库存系统设计的几大核心要点:
1. 库存安全:既要保证线程安全,也要防止出现超卖
2. 同步响应:业务场景基本不允许异步响应库存扣减结果
3. 性能极限:在seckill场景下,性能总是被要求越高越好
我们来看下如何利用Redis来解决上面的三个问题。
一.库存安全
利用Redis来做库存扣减,避免超限的"方法"很多,坑也很多,我们先来看下常用的陷阱有哪些。