首页 > 其他 > 详细

Redis 分布式锁

时间:2020-05-05 09:27:51      阅读:53      评论:0      收藏:0      [点我收藏+]

1. 解决领域

位于不同 jvm 下的线程之间 , 不能使用  synchronized

那么  同一时间就可能对同一个资源进行访问 , 造成状态不一致.

比如 A , B买东西 ,  买 资源 菠萝  ,只有一个 ,两个线程同时读到剩余  1  个库存 ,然后同时下单  .造成超卖

 

这个时候用一个统一能访问到的资源 , redis  , 如果A要买 ,买的时候 ,

在redis里面加一个 

SETNX 菠萝  A在买 ,就意味着A占有这个 菠萝   ,
正在进行操作 
其他人就进不去.  因为此时的 菠萝是有 状态的
 
除非A操作完 , 然后B才能买 ,
 
这样做就不用去给数据库加锁 , 而把访问并发问题移交给Redis , 让它来控制谁来访问资源
 
有先后顺序.
(我们需要控制A买的操作时间 , 另外,也要设置锁的过期时间 , 防止A出现问题 ,
没有及时交出 锁 , 造成  菠萝 这个资源一直处于被锁定之中 !!)
 
技术分享图片

 

 

Redis 分布式锁

原文:https://www.cnblogs.com/alpha-cat/p/12829285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!