zoukankan      html  css  js  c++  java
  • Redis lock 锁的分布式实现原理

    1. 选择redis分布式锁的原因:

      (1)redis有很高的性能;
      (2)redis对此支持的命令较好,实现起来比较方便
    2. 使用分布式锁的时候主要用到的命令介绍:

      1)SETNX
           SETNX key val:当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。
      (2)expire
          expire key timeout:当key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。
      (3)delete
          delete key:删除key
    3. 实现思想:

      1)获取锁的时候,使用setnx加锁,并使用expire命令给锁加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。
      (2)获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁。
      (3)释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放。
  • 相关阅读:
    每日日报2020.12.1
    每日日报2020.11.30
    981. Time Based Key-Value Store
    1146. Snapshot Array
    565. Array Nesting
    79. Word Search
    43. Multiply Strings
    Largest value of the expression
    1014. Best Sightseeing Pair
    562. Longest Line of Consecutive One in Matrix
  • 原文地址:https://www.cnblogs.com/aitree/p/14452503.html
Copyright © 2011-2022 走看看