如何解决高并发下的库存争抢问题?
Posted 抓手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决高并发下的库存争抢问题?相关的知识,希望对你有一定的参考价值。
原子操作
单库修改,几乎无锁竞争,性能好,但性能有上限,可能数据库单点故障。
拆分key
可以将数据量比较大的key-value,拆分为多个key-value,分拆单次操作的压力,将操作压力平摊到多个redis实例中,降低对单个redis的IO影响。
令牌队列
类似于令牌限流,将对库存的竞争转换为对令牌的竞争,拿到令牌才可拿库存。
自旋互斥超时锁
可以对多线程进行互斥,实现同个类型的数据只有一个线程在运行。
CAS乐观锁
无锁竞争的原子操作,事务执行期间相关的缓存没有修改才会提交成功。
Redis+Lua
Redis+Lua可以实现对redis的原子操作,并且无锁竞争顺序执行。
更多:
Redis大key多key拆分实现方法解析_Redis_数据库 - 编程客栈
如何实现令牌队列(token queue) - freestyleking - 博客园
Redis+LUA技术_迷路人~的博客-CSDN博客_redis+lua
以上是关于如何解决高并发下的库存争抢问题?的主要内容,如果未能解决你的问题,请参考以下文章