何らかの理由で、redis マスター マシンを交換する必要がある場合があります。マシンを停止して交換することはできますが、ユーザー エクスペリエンスに影響を及ぼす可能性があります。この記事では、ダウンタイムを発生させずに移行する方法について簡単に説明します。
(推奨: redis ビデオ チュートリアル )
システム環境
CentOS 6.3 x64
redis-サーバー 2.6.16
2 台のマシン s1\s2
操作手順
#1. 新しい Redis サーバーで Redis インスタンスを開始します。構成はマスター構成と同じです。違いは、構成ファイルが変更され、スレーブ読み取り専用が有効になっている点です。いいえ、
これにより、スレーブが書き込みできるようになります。 -only."
2. 新しい redis をスレーブにします: redis 127.0.0.1:6379>SLAVEOF s1 6379
その後、s2 のログを確認できます。 info コマンドを使用してステータスを確認することもできます。
3. s2 が s1 のデータを完全に同期した後、ゲーム アプリの redis ip を s2 の ip に変更します。
4. ゲームが正常に動作するか確認してください。
5. 上記で問題がなければ、s2
6 で redis 127.0.0.1:6379> SLAVEOF NO ONE を実行します。オフライン s1
PS:
SLAVEOF ホスト ポート
SLAVEOF コマンドは、Redis の実行中にレプリケーション機能の動作を動的に変更するために使用されます。
SLAVEOF ホストポートコマンドを実行すると、現在のサーバを指定したサーバのスレーブサーバに変換できます。
現在のサーバーがすでにマスターサーバーのスレーブサーバーである場合、SLAVEOF ホストポートを実行すると、現在のサーバーは古いマスターサーバーとの同期を停止し、古いデータセットを破棄し、新しいデータセットの同期を開始します。メインサーバーは同期を実行します。
さらに、スレーブ サーバー上でコマンド SLAVEOF NO ONE を実行すると、スレーブ サーバーはレプリケーション機能をオフにし、スレーブ サーバーからマスター サーバーに戻ります。元の同期データ セットは失われます。捨てられた。
「SLAVEOF NO ONE は同期データセットを破棄しない」機能を利用することで、メインサーバに障害が発生した場合でも、スレーブサーバを新たなメインサーバとして使用することができ、無停止運用を実現します。
利用可能なバージョン:
>= 1.0.0
時間計算量:
SLAVEOF ホスト ポート、O(N)、N が同期されますデータ量。
誰の奴隷でもない、O(1)。
戻り値:
常に OK を返します。
redis の詳細については、redis 入門チュートリアル 列に注目してください。
以上がRedis マスター/スレーブ インスタンスをオンラインに切り替えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。