Redisのメモリ設定とファイル設定のdiff取るスクリプト書いた

※2013/07/25 スクリプトと概要をUpdateしました

次期バージョンであるRedis 2.8ではこの問題を少しでも解決しようと、 CONFIG REWRITE というコマンドで、redis.confの書き換えを行えるらしい、 が、結局それを忘れたら同じことなのでこの問題の解決にはなるかは微妙なところだ。 メモリ上にしか反映されていない設定があるかどうかをなんらかの方法でチェックすることができれば監視するなどできると思うのだが…。

http://unknownplace.org/archives/twilio-redis-incident.html


書き捨てっぽいですが、差分をとるスクリプトをペロッと書いてみました。

概要

以下のようなことをしています。

  1. 値が空のキーはデフォルト値を設定
  2. 単位(K/M/G)を最小単位に戻す
  3. メモリ上のキーを正とします*1
    • メモリにのみキーが存在する場合、ファイルのキーにデフォルト値を追加設定
    • ファイルにのみキーが存在する場合、ファイルのキーを削除
  4. 上記ハッシュをテキスト化してdiff取る
  5. 差分がないと「0」、差分があると「1」をステータスコードとして返します


チェックスクリプトとしてお使いください〜

*1:そうしないとチェックしようがないため