はじめまして。バックエンドエンジニアの吉田です。 2013年5月末の入社以降、大量のEC2インスタンスのVPC移行を担当した後、今はiQONの商品DBを支えるクローラーの改善に取り組んでいます。今回はその改善の1つとして開発したRedis::DistMutexという分散ロック機構のruby実装を紹介をしようと思います。 Redis::DistMutex 開発の経緯や細かい設計の話は後述するとして、まずはつくったgemの紹介をします。 Redis::DistMutex Redisベースの分散ロック機構 rubyのライブラリにあるMutex互換 スレッド間だけでなく、プロセス間・ホスト間でも共有できるMutex 時限つきロックの作成が可能(redisのsetnxとexpireを活用) namespaceを指定できるので、特定の処理ごとにロックの作成が可能 redis2.6以上のみサポート(1秒
![Redis::DistMutex - 時限付き分散ロックで効率良くサイトクロールをしよう - ZOZO TECH BLOG](https://cdn-ak-scissors.b.st-hatena.com/image/square/bf61336dd3bd7b8139bb4b17e45634ccca0d11cf/height=288;version=1;width=512/http%3A%2F%2Fvasily.jp%2Fwp-content%2Fuploads%2F2013%2F11%2Fcrawler-overview.jpg)