十、Redisは反発ロックを実現する


SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]
  • EX seconds−指定された有効期限を秒単位で設定します.
  • PX milliseconds-指定した有効期限をミリ秒単位で設定します.
  • NX-キーが存在しない場合にのみキーを設定します.
  • XX-キーが既に存在する場合にのみ設定されます.反発ロックを実現するには、
  • などのコマンドが必要です.
    //  “ ”
    if(redis.set("lock", "1", "EX 180", "NX")){
        //    
        .......
        //        ,   
        redis.delete("lock");
    }

      「NX」はredisがこのキーを持っていない場合にのみそのキー値ペアを設定することを保証しているため、最初にアクセスしたスレッドだけが後の論理を実行することができ、後のスレッドは再アクセスし、待機をブロックするしかない