springboot如何redis锁
如何解决超卖问题?
超卖问题:就是多个线程并发执行,目前唯一方案是加锁。
如图:悲观锁其实还有数据库的互斥锁。悲观锁是最常见的
乐观锁实现的原理:
版本号:
这种方案就是:扣款库存的时候首先先查询版本号,然后再修改库存的时候把查询的库存号当做条件并把版本号进行+1,库存-1。
CAS发
和第一种一样只是把版本号换成库存了。很好理解
优点:性能比悲观锁好。
缺点:高并发情况下依然存在超卖的问题。
超卖问题:就是多个线程并发执行,目前唯一方案是加锁。
如图:悲观锁其实还有数据库的互斥锁。悲观锁是最常见的
乐观锁实现的原理:
版本号:
这种方案就是:扣款库存的时候首先先查询版本号,然后再修改库存的时候把查询的库存号当做条件并把版本号进行+1,库存-1。
CAS发
和第一种一样只是把版本号换成库存了。很好理解
优点:性能比悲观锁好。
缺点:高并发情况下依然存在超卖的问题。