1. 簡単な説明2018年10月、Redisは安定版5.0をリリースし、さまざまな新機能を導入しました。その1つは、Rubyクラスタリング方式を廃止し、C言語で記述されたredis-cli方式に切り替えたことで、これによりクラスタ構築の複雑さが大幅に軽減されました。クラスターの更新については、Redis5 のバージョン ノートで次のように確認できます。 クラスター マネージャーは Ruby (redis-trib.rb) から redis-cli 内の C コードに移植されました。詳細については、`redis-cli --cluster help` を参照してください。 クラスターの構築方法については、Redisの公式サイトをご覧ください。接続は次のようになります。 https://redis.io/topics/cluster-tutorial クラスターには少なくとも 3 つのノードがあり、それぞれにバックアップ ノードが必要です。 6 台のサーバーが必要です。 条件が限られていれば、擬似分散システムを構築できます。以下の手順は、Linux サーバー上に 6 ノードの Redis クラスターを構築する方法です。 2. クラスターを作成する手順2.1. ディレクトリを作成する新しいディレクトリを作成します: 2.2. ソースコードをダウンロードし、解凍してコンパイルするwget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xzf redis-5.0.0.tar.gz redis-5.0.0 をインストールします 作る インストール PREFIX=/usr/local/redis 3. 6つのRedis設定ファイルを作成する6 つの設定ファイルを同じディレクトリに置くことはできません。ここでは次のように定義します。
一部の操作コマンドは参考用です: redis.conf を /usr/local/redis/bin にコピーします。 /usr/local/redis/ に移動します cp -r bin ../redis-cluster/redis01 /usr/local/redis-cluster/redis01 をコピーします。 rm dump.rdb #スナップショットを削除 vim redis.conf 設定ファイルの内容は次のとおりです。 ポート 7001 #ポート cluster-enabled yes #クラスターモードを有効にする cluster-config-file nodes.conf cluster-node-timeout 5000 #タイムアウト appendonly yes デーモン化 yes #バックグラウンド実行 protected-mode no #非保護モード pidfile /var/run/redis_7001.pid bind 172.20.10.7 #127.0.0.1 をローカル IP アドレスに変更します。ifconfig を使用して IP アドレスを表示できます。 ポートと pidfile は、さまざまなフォルダーに応じて調整する必要があります。 残りの 5 つのインスタンスを作成します。 [root@master redis-cluster]# cp -r redis01/ redis02 [root@master redis-cluster]# cp -r redis01/ redis03 [root@master redis-cluster]# cp -r redis01/ redis04 [ルート@マスターredis-cluster]# cp -r redis01/ redis05 [ルート@マスター redis-cluster]# cp -r redis01/ redis06 redis02~redis06のredis.confのポートとpidfileをそれぞれ変更します。 4. ノードを起動するそれぞれ redis01、redis02、...redis06 ディレクトリに入り、次を実行します: ./redis-server ./redis.conf 6 つの Redis を同時に起動するバッチ ファイルを作成する
次のコンテンツを追加します。 cd redis01 ./redis-server redis.conf CD .. cd redis02 ./redis-server redis.conf CD .. cd redis03 ./redis-server redis.conf CD .. cd redis04 ./redis-server redis.conf CD .. cd redis05 ./redis-server redis.conf CD .. cd redis06 ./redis-server redis.conf CD .. 次に 現在のディレクトリで開始します: 表示: 5. クラスターを起動する使用するクラスターは Redis バージョン 5.0.0 で構築されているため、コンパイルされた redis ディレクトリ内の redis-cli ファイルを redis-cluster ディレクトリにコピーするだけで済みます。 (Redis バージョン 5.0 以降は C 言語を使用して直接起動します)
起動後、次のような成功メッセージが表示されます。 >>> 6 つのノードでハッシュ スロットの割り当てを実行しています... マスター[0] -> スロット0 - 5460 マスター[1] -> スロット5461 - 10922 マスター[2] -> スロット 10923 - 16383 レプリカ 172.20.10.7:7004 を 172.20.10.7:7001 に追加 レプリカ 172.20.10.7:7005 を 172.20.10.7:7002 に追加 レプリカ 172.20.10.7:7006 を 172.20.10.7:7003 に追加 >>> 反アフィニティのスレーブ割り当てを最適化しようとしています [警告] 一部のスレーブはマスターと同じホストにあります 172.20.10.7:7001 ... スロット:[0-5460] (5461スロット) マスター メートル: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002 スロット:[5461-10922] (5462スロット) マスター 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003 スロット:[10923-16383] (5461 スロット) マスター 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004 a4128b5e581c3722acd9b093c5f29f5056f680b0 を複製する 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005 複製 d6fed6f21269b8469a3076ac5fb168bd20f70c26 s: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006 51a0f62dacead745ce5351cdbe0bdbae553ce413 を複製します 上記の設定を行えますか? (同意する場合は「はい」と入力してください): はい はいと入力してEnterキーを押します >>> ノード構成が更新されました >>> 各ノードに異なる構成エポックを割り当てる >>> クラスターに参加するためにCLUSTER MEETメッセージを送信する クラスターの参加を待機中 ...... >>> クラスター チェックを実行しています (ノード 172.20.10.7:7001 を使用) 172.20.10.7:7001 ... スロット:[0-5460] (5461スロット) マスター 追加のレプリカ 1 個 メートル: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002 スロット:[5461-10922] (5462スロット) マスター 追加のレプリカ 1 個 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004 スロット: (0 スロット) スレーブ a4128b5e581c3722acd9b093c5f29f5056f680b0 を複製する 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003 スロット:[10923-16383] (5461 スロット) マスター 追加のレプリカ 1 個 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005 スロット: (0 スロット) スレーブ 複製 d6fed6f21269b8469a3076ac5fb168bd20f70c26 s: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006 スロット: (0 スロット) スレーブ 51a0f62dacead745ce5351cdbe0bdbae553ce413 を複製します [OK] すべてのノードがスロット構成に同意します。 >>> 空きスロットがあるか確認します... >>> スロットのカバレッジを確認してください... [OK] 16384 スロットすべてがカバーされました。 この時点で、Reids5 クラスターが構築されます。 6. クラスター操作6.1. クラスターをシャットダウンする方法1: Redis5 はクラスターをシャットダウンするためのツールを提供しており、次のディレクトリにあります。 このファイルを開き、次に示すようにポートを独自のものに変更します。 ポート PROT は 7000 に設定され、NODES は 6 に設定され、ツールは自動的に 1 を追加して、操作用に 6 つのノード 7001 ~ 7006 を生成します。 下を見てパスを変更し、IPアドレスを追加します。追加しない場合は、デフォルトのローカル127.0.0.1 変更後、次のコマンドを実行してクラスターをシャットダウンします。 方法2: create-clusterディレクトリにスクリプトファイルを作成します: vim shut down.sh /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7001 シャットダウン /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7002 シャットダウン /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7003 シャットダウン /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7004 シャットダウン /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7005 シャットダウン /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7006 シャットダウン 次に 現在のディレクトリから開始: ./shutdown.sh 表示: ps aux|grep redis 公式: /usr/local/redis-cluster/redis-cli -a xxx -c -h 192.168.5.100 -p 8001 ヒント: -a はサーバのパスワードにアクセスし、-c はクラスタ モードを示し、-h は IP アドレスを指定し、-p はポート番号を指定します。 6.2. クラスターを再起動する
6.3. スクリプトファイルを使用してクラスターを起動するvim startall.sh に次の内容を追加します: (自分の IP アドレスを変更することを忘れないでください) /usr/local/redis-cluster/redis-cli --cluster を作成します 172.20.10.7:7001 172.20.10.7:7002 172.20.10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas 開始: ./startall.sh 7. テストクラスターredis-clusterディレクトリで実行する
-cはクラスタモードでRedisに接続することを意味しており、-hはIPアドレスを指定し、-pはポート番号を指定します。 クラスターノード クラスターノード情報を照会する クラスター情報クエリクラスターステータス情報 要約する 以上が、編集者が紹介した Linux (Centos7) での redis5 クラスターの構築と使用の詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: phpstudy から Linux への MySQL の移行に関するチュートリアル
>>: JavaScript プロトタイプのデータ共有とメソッド共有の実装を調べる
RGBカラーテーブル色英語名RGB 16色雪255 250 250 #FFFAFAゴーストホワイト2...
目次1. JavaScriptの問題2. TypeScriptの利点3. TypeScriptの欠点...
目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...
この記事では、適応解像度を実現するためのVue2.0の具体的なコードを参考までに紹介します。具体的な...
リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...
前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...
序文最近、面接中に、MySQL の InnoDB エンジンがどのようにトランザクションを実装している...
ルートディレクトリとインデックスファイルroot ディレクティブは、ファイルの検索に使用するルート ...
主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...
場合によっては、Windows システム上のプログラムを Linux 上でリモートで実行する必要があ...
目次React Hooks に基づく状態共有の実装ユーザーエクスペリエンスこの記事では、主に Rea...
次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...
目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...
目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...
1. Alipay方式: Alipay メソッド: Alipay をクリックして支払い、バックエンド...