タグ

distributed-lockとredis-setnxに関するnabinnoのブックマーク (2)

  • Redisで超簡単にReader-Writer-Lockを実装する方法 - Qiita

    考え方と原理 私のロック魂をアピールさせてください!(多田李衣菜) RedisでSETNXを使えば簡単に排他ロックが実現できる。MSETNXを使えば、複数のロックを同時に評価できる。それは良いのだが、並行実行性を考えると、なるべく競合しない方が良いよね。データ構造でも、競合しにくいように考えていると思うので、制御の方でも競合しにくい作りにしよう。 その代表が、Reader-Writer-Lock。読み出しはいくらでも競合したまえ。書き込みは別だ。というやつだね。賢いロックの賢いついでにreaderlock獲得中のコンテクストが、writerlockに昇格できるってのいいかも、と思ったけど、それ、ちょっと考えたら、同じことを考えてる奴が複数いたら、デッドロックになるじゃんね? 書き込みをしたい人が、書き込みをするための情報を得るために読み出す場合、読み出しの段階からwriterlock獲得し

    Redisで超簡単にReader-Writer-Lockを実装する方法 - Qiita
  • SETNX

    SETNX key value Available since: 1.0.0 Time complexity: O(1) ACL categories: @write, @string, @fast, Set key to hold string value if key does not exist. In that case, it is equal to SET. When key already holds a value, no operation is performed. SETNX is short for "SET if Not eXists". Examples SETNX mykey "Hello" SETNX mykey "World" GET mykey Design pattern: Locking with SETNX Please note that: Th

  • 1