redis超卖(分布式锁) setnx排他独占 最终效果,既可以防止死锁,又可以设置过期时间

热点key过期,加一个锁,抢占到锁才会去查询mysql数据库,然后查到数据后重新写入redis,

几百台服务器,几十个热点数据,不能用jvm锁

 

  

 

 

 

 

 

 

 

 

 --------------------------------------------------------------------

重试问题  重试了几次,库存就会扣减几次

 

 一定要有else机制才行

 

 ----------------------------

从递归调用到while循环 

一直尝试获取锁,获取锁之后,开始执行下面的try

 

 不停的cas自旋获取锁,去掉休眠,就会导致锁的竞争压力变得更大了

 

 

 在循环获取锁的过程中,宕机了,锁无法释放

 

 

  

 

 

  

 

 

 

 

posted @ 2023-02-07 18:29  lamda表达式先驱  阅读(150)  评论(0)    收藏  举报