つい先日、担当しているプロジェクトのサーバ障害がおこり、Redisのレプリ設定がごちゃごちゃになり、master,slaveの状態の確認とRedisサーバー自体の上げ下げを行ったので
その作業に使用したコマンド周りをメモ。

現在のプロジェクトはredisサーバー複数台をSentinelで管理しており、masterがダウンしたらslaveがmasterに昇格するようになっているので
現在masterになっているRedisサーバーを停止させ、本来masterであるべきRedisサーバーがslaveからmasterに戻ったのを確認したら、止めたサーバーを再度起動する方法で対応した。

(Redis単体にはフェイルオーバーの機能はないので、Redisだけでレプリを張ってる場合は別の手順が必要になります)

 

Redisサーバーの起動

 

バックグラウンドでのRedisの起動

 

Redisの起動の確認(一例)

PONGが帰ってくれば起動してる

Redisクライアントの起動

 

Redisサーバーの停止

もしくは、Ctrl + Cでも停止できるが、その場合はメモリに残っているデータは消える。

master/slave設定の確認

 

Redisのレプリについて

公式ドキュメント http://redis.io/topics/replication

  • マスターは複数のスレーブをもてる
  • スレーブは別のスレーブの親になれる
  • マスター/スレーブのレプリケート処理はノンブロッキング
  • スレーブは writable (2.6 からは slave-read-only 設定が追加され、デフォルトは read-only)

Redis 2.4 ではフェイルオーバーの仕組みはない。
スレーブをマスターに昇格するには、マスターを停止し、手動でスレーブ設定を無効化する必要がある。

スレーブ設定方法

 

ヘルスチェック

スレーブは redis.conf の repl-ping-slave-period の間隔(デフォルトは10秒)でマスターに PING コマンドを送信している。


master がダウンしている場合に info を確認すると

master_link_status が down
master_last_io_seconds_ago は -1 となる。
またダウンの場合のみダウン後の経過秒数がmaster_link_down_since_seconds で表示される。

 

 


http://astone.jeez.jp/wp-content/uploads/2015/10/8203794182_8004f8f636_b-1024x683.jpghttp://astone.jeez.jp/wp-content/uploads/2015/10/8203794182_8004f8f636_b-150x150.jpgmilksoapServerKVS,Redis,server
  つい先日、担当しているプロジェクトのサーバ障害がおこり、Redisのレプリ設定がごちゃごちゃになり、master,slaveの状態の確認とRedisサーバー自体の上げ下げを行ったので その作業に使用したコマンド周りをメモ。 現在のプロジェクトはredisサーバー複数台をSentinelで管理しており、masterがダウンしたらslaveがmasterに昇格するようになっているので 現在masterになっているRedisサーバーを停止させ、本来masterであるべきRedisサーバーがslaveからmasterに戻ったのを確認したら、止めたサーバーを再度起動する方法で対応した。 (Redis単体にはフェイルオーバーの機能はないので、Redisだけでレプリを張ってる場合は別の手順が必要になります)   Redisサーバーの起動   バックグラウンドでのRedisの起動   Redisの起動の確認(一例) PONGが帰ってくれば起動してる Redisクライアントの起動   Redisサーバーの停止 もしくは、Ctrl + Cでも停止できるが、その場合はメモリに残っているデータは消える。 master/slave設定の確認   Redisのレプリについて 公式ドキュメント http://redis.io/topics/replication マスターは複数のスレーブをもてる スレーブは別のスレーブの親になれる マスター/スレーブのレプリケート処理はノンブロッキング スレーブは writable (2.6 からは slave-read-only 設定が追加され、デフォルトは read-only) Redis 2.4 ではフェイルオーバーの仕組みはない。 スレーブをマスターに昇格するには、マスターを停止し、手動でスレーブ設定を無効化する必要がある。 スレーブ設定方法   ヘルスチェック スレーブは redis.conf の repl-ping-slave-period の間隔(デフォルトは10秒)でマスターに PING コマンドを送信している。 master がダウンしている場合に info を確認すると master_link_status が down master_last_io_seconds_ago は -1 となる。 またダウンの場合のみダウン後の経過秒数がmaster_link_down_since_seconds で表示される。