Redisの応用--分散ロック


Redis
文書ディレクトリ
  • Redis
  • アプリケーション
  • 分散ロック
  • ソリューション
  • 適用
    ぶんさんロック
  • 反発
  • デッドロック
  • 許容誤差
  • ソリューション
  • は通常redisのnxデータを使用し、次の文ではkeyは対応する接頭辞+プライマリキーを使用し、valueはランダム値UUIDを使用し、タイムアウト時間は30秒に設定されています.
  • set key value nx 30
    

    ロック解除:luaスクリプトを使用してkey値を取得し、元に保存したランダム値と同じかどうかを判断します.同じように削除します.同じではありません.redisのこのデータはあなたが挿入したものではありません.削除できません.
  • RedisベースのRedLockは、クラスタ環境で行う必要があり、同様の操作が必要であるが、同時にクラスタの半分以上のマシンにロックをかけることを保証する必要があり、ロックに成功する.ロック解除も同様
  • Zookeeperに基づいて、一時ノードを設定し(自分のマシンがオフになった後、自動的にこのノードを削除します)、設定に成功したらロックし、設定に成功しません.これはリスナーを設定し、このノードが削除したイベント
  • を傍受します.
                 ,           
    
         ,   CountDownLatch    
          CountDownLatch