ホームページ  >  記事  >  データベース  >  Redis の 3 つのクラスター モードの紹介 (Cluster クラスター モード)

Redis の 3 つのクラスター モードの紹介 (Cluster クラスター モード)

藏色散人
藏色散人転載
2020-09-10 09:34:453231ブラウズ

次のコラム Redis チュートリアル では、Redis の 3 つのクラスター モード (クラスター クラスター モード) を紹介します。

Redis の 3 つのクラスター モードの紹介 (Cluster クラスター モード)

#Redis の 3 つのクラスター モード - クラスター クラスター モード

1. Redis クラスターのデプロイメントを以前に見たことがありますか? 3つのソリューションがありますが、最もパフォーマンスが高いのは、redis が公式に推奨している redis-cluster モードです。

1. redis-cluster

A. 分散化の考え方を使用し、中央ノードはなく、ハッシュ スロット方式を使用して結合します。 16348 ハッシュ。スロットはすべてのノードをカバーします。保存されているキー値ごとに、CRC16 (KEY) &16348=slot を使用して、対応するハッシュ スロット

を取得し、キーにアクセスするときにそのハッシュ スロットを見つけます。どのノードで、現在のアクセス ノードは、実際にこのハッシュ スロットが割り当てられているノードからデータを取得します。ノードは軽量プロトコル通信を使用して、帯域幅の使用量を削減し、高いパフォーマンスを実現します。

ロード バランシングと高可用性、自動フェイルオーバーとサポートを自動的に実装します。ダイナミックな拡張を実現します。

B. マスター/スレーブ構成も内部で設定する必要があり、センチネル モードも内部で使用されます。ノードの半数が異常なノードを見つけた場合、異常なノードのステータスを変更することを共同で決定します。変更されたノードがマスター ノードの場合、対応するスレーブ ノードが自動的にマスター ノードに置き換わります。元のマスター ノードがオンラインになると、スレーブ ノードになります。

クラスター内のマスターにスレーブ ノードがない場合、クラスターのスロット マッピングが不完全であるため、マスターがハングアップした後、クラスター全体が障害状態になります。クラスター内のマスターの半分以上が停止すると、スレーブが存在するかどうかに関係なく、クラスターは障害状態になります。

C. 公式推奨によれば、クラスターの展開には少なくとも 3 つのマスター ノードが必要です。次に、デプロイメントを開始します

2. 各パスに、構成ファイル

を追加します: redis.conf

two 、クラスター構成

# cd /usr/software/redis/redis-

cluster

/ 1. ディレクトリを作成します

/usr/software/redis/redis-cluster/1001

/usr/software/redis/redis-cluster/1002

/usr/software/redis/redis-cluster/1003

/usr/software/redis/redis-cluster/1004

/usr/software/redis/redis-cluster/1005

/usr/software/redis/redis-cluster /1006

2. redis.conf

cd /usr/software/redis/redis-cluster/1001

vim redis.conf

#を変更します。

次のキーと値のペアを変更します

################################## NETWORK #####################################
#bind 127.0.0.1protected-mode no
port 1001################################# GENERAL #####################################
daemonize yes
pidfile "/var/run/redis_1001.pid"logfile "/usr/software/redis/redis-cluster/1001/log/redis.log"################################ SNAPSHOTTING  ################################dir "/usr/software/redis/redis-cluster/1001/data"################################ REDIS CLUSTER  ###############################
cluster-enabled yes
cluster-config-file nodes-1001.conf
cluster-node-timeout 15000################################## SECURITY ###################################
requirepass "ww"

他のいくつかのインスタンスの構成ファイルは次のように変更できます (ログ ディレクトリとデータ ディレクトリを自分で作成する必要があります):

port 100x"/var/run/redis_100x.pid" 
logfile "/usr/software/redis/redis-cluster/100x/log/redis.log""/usr/software/redis/redis-cluster/100x/data"-config-file nodes-100x.conf
3. クラスターの起動


1. redis-server /usr/software/redis/redis-cluster/1001/redis.conf ... を使用してすべてのノードを起動します

2. 開始後、クラスターを作成できます

注:

Redis-cli は、redis5.0 以降のクラスターの作成に使用されます。以前のバージョンでは redis-trib.rb を使用していますが、ruby ソフトウェアのインストールが比較的複雑でしたが、以前のバージョン 5.0 に比べて追加のソフトウェアをインストールする必要がなく便利です。詳細については、redis 公式 Web サイトを参照してください。 https://redis.io/topics/cluster-tutorialクラスターの作成コマンド: ここで、cluster-replicas 1 はスレーブの数を表します。 1 つのマスターの後、1 は 1 つのスレーブ ノードを表します

redis-cli --cluster create 127.0.0.1:1001  127.0.0.1:1002 127.0.0.1:1003 127.0.0.1:1004 127.0.0.1:1005 127.0.0.1:1006 --cluster-replicas 1 -a ww

パスワードを追加する -a ww がないため、初回はクラスターの作成が失敗します。


次の内容は次のとおりです。プロセス中にプロンプ​​トが表示されたら、「yes」と入力して続行します。 ;

上記の構成を設定できますか? (受け入れるには「yes」と入力します): yes

クラスター自動割り当ての結果は次のとおりです:

3. クラスターが正常に作成されたかどうかを確認します

最初にマスターとスレーブのペアを確認します。

# #実行: redis-cli -c -p 1001 -a ww

データは 1002 ノードに自動的に割り当てられ、接続も 1002 ノードに転送されます。 1002 ノード

4. フェイルオーバーの確認

結論としては、マスター ノードに障害が発生すると、下位のスレーブ ノードがマスター ノードにアップグレードされ、マスター ノードのスロットが引き継がれます。古いマスター ノードがオンラインになった後は、そのスレーブ ノードとしてのみ機能します。

1001 を強制終了すると、ノード 1004 からマスターに変換されたことがわかります。

1001 を再起動すると、スレーブ ノードになります

以上がRedis の 3 つのクラスター モードの紹介 (Cluster クラスター モード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。