redisの哨兵モードの構築方法
Redis センチネルモードは、Redis 主ノードの状態を監視し、主ノードが停止した場合に自動的にスレーブノードのいずれかを昇格させることでフェイルオーバーを実現する、高可用な Redis のデプロイメントアーキテクチャです。Redis センチネルモードを構築する手順は次のとおりです。
- Redisのインストール:まず、すべてのサーバにRedisをインストールします。Redisの最新バージョンはRedisの公式サイトからダウンロードでき、インストール手順は公式サイトのドキュメントに従って実施できます。
- 既存サーバーの1つにRedisマスターノードを構築する:マスターノードの設定ファイル(通常/etc/redis/redis.conf)を開き、以下のパラメータを見つけて変更します:
- ポート 6379
bind 0.0.0.0
daemonize yes - 「port」引数をRedisマスターノードのポート番号に設定(デフォルトは6379)、「bind」引数を「0.0.0.0」に設定して任意のIPからの接続を許可し、「daemonize」引数を「yes」に設定してRedisをデーモンプロセスとして実行します。
- 主Redisノードを起動する:Redis主ノードをメインノードサーバーで起動します。Redisを起動するには、次のコマンドを使用します。
- redis-サーバー/etc/redis/redis.conf
- Redisのセカンダリーを作成する:もう一つのサーバ上にRedisセカンダリーを作成する。やはりセカンダリーのコンフィグファイルを開いて以下のパラメータを見つけて変更する:
- port 6379
bind 0.0.0.0
daemonize yes
slaveof <マスターIP> <マスターポート> - ポートパラメータにはRedisスレーブノードのポート番号を設定し(親ノードと同じでも可)、bindパラメータは0.0.0.0に設定して任意のIPからの接続を許可し、daemonizeパラメータはyesに設定してRedisをバックグラウンドプロセスとして実行し、最後にslaveofパラメータで親ノードのIPとポート番号を指定します。
- 各々の従サーバ上で、Redisの従サーバを起動します。
- Redisセンチネルノードのデプロイ:Redisセンチネルノードとして使用するサーバを選択します。センチネルノードの設定ファイルを開き、以下のパラメータを見つけて変更します。
- ポート 26379
sentinel monitor <マスターノード名> <マスターノードIP> <マスターノードポート番号> <投票数> - ポート引数は、センチネルノードのポート番号(デフォルトは26379)を設定するもので、センチネルモニタ引数を使用して、監視対象のマスターノード情報を指定します。その中で、<マスターノード名>は自由にカスタマイズできますが、<マスターノードIP>と<マスターノードポート番号>は、マスターノードのIPとポート番号と同じにする必要があります。<投票数>は、マスターノードを選択するための最小のセンチネルノード数です。
- 哨兵ノードの起動: 哨兵ノードサーバ上で Redis の哨兵ノードを起動します。
- センチネルモードの検証:センチネルノードへの接続、以下のコマンドを実行してマスターノードの状態確認:
- redis-cli -p 26379 –cluster call sentinel masters
以上はRedisの哨兵モードの基本的な手順であり、実際のニーズに応じて調整と最適化を行うことができます。