看代码:(自定义redis锁解决方式,如果不用redis,单机环境下可用synchronized解决)但任然有问题:
1. delete的时候,锁有可能过期了,有可能删除线程2的锁(解决办法,在支持业务操作的时候,不断给锁续命)
这块代码很繁杂,还要去给锁续期续命,所以就有了redisson分布式锁
redisson锁实现方式:(redisson底层原理:加的锁默认是30秒过期,每隔10秒去续期)
最后:进一步提升并发性能:1. 把库存分段,分段锁,2. 把不同库存放到不同redis节点