• Redis 分布式锁


    1. 解决领域

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

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

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

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

    在redis里面加一个 

    SETNX 菠萝  A在买 ,就意味着A占有这个 菠萝   ,
    正在进行操作 
    其他人就进不去.  因为此时的 菠萝是有 状态的
     
    除非A操作完 , 然后B才能买 ,
     
    这样做就不用去给数据库加锁 , 而把访问并发问题移交给Redis , 让它来控制谁来访问资源
     
    有先后顺序.
    (我们需要控制A买的操作时间 , 另外,也要设置锁的过期时间 , 防止A出现问题 ,
    没有及时交出 锁 , 造成  菠萝 这个资源一直处于被锁定之中 !!)
     
  • 相关阅读:
    第三次上机
    第5次作业
    第二次上机练习
    第三次作业
    第一次作业
    第一次作业
    第二次上机练习
    第二次作业
    第一次作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/alpha-cat/p/12829285.html
Copyright © 2020-2023  润新知