Redisクラスターとクラスター構築検討ノート

Redis クラスター

1 コンセプト

Redis クラスターは Redis の水平展開を実現します。つまり、N 個の redis ノードを起動し、データベース全体をこれらの N 個のノードに分散して格納し、各ノードに合計 1N 個のデータを格納します。Redis クラスターは、パーティションを通じてある程度の可用性 (可用性) を提供します。クラスター内の一部のノードに障害が発生したり、通信できなくなったりしても、クラスターはコマンド要求を処理し続けることができます。

2 Redis クラスタの構築

(1) rdb などの空の永続ファイル

画像-20211015154146210

画像-20211015154212701

(2) 6 つの設定ファイル redis6379.conf、redis6380.conf、redis6381.conf、redis6389.conf、redis6390.conf、redis6391.conf を作成し、設定を変更します。

例として 6379 を取り上げ、基本構成の上にいくつかのクラスター構成を追加します。

cluster-enabled yes クラスターモードをオンにします

cluster-config-file nodes-6379.conf ノード構成ファイル名を設定します

cluster-node-timeout 15000 ノードの切断時間を設定します。この時間 (ミリ秒) を超えると、クラスターは自動的にマスターとスレーブを切り替えます

画像-20211015160254798

同様に、他の 5 つのファイルを構成し、6379 を対応する ID に変更するだけです

画像-20211015160323002

(3) 6つのredisサービスを開始

画像-20211015160525697

状態をチェック

画像-20211015160628418

nodes-xxxx.conf ファイルが正しく生成されていることを確認します

画像-20211015160835491

(4) 6ノードをまとめてクラスタ化

最初に、私の redis が /opt の下にインストールされている redis インストール ディレクトリに src ディレクトリを入力します。

画像-20211015161028810

使用redis-cli --cluster create --cluster-replicas 1 192.168.33.11:6379 192.168.33.11:6380 192.168.33.11:6381 192.168.33.11:6389 192.168.33.11:6390 192.168.333.11:6

–replicas 1 は、1 つのマスター、1 つのスレーブ、正確に 3 つのグループという最も単純な方法でクラスターを構成することを意味します。

画像-20211015161639220

その後、この配布方法を受け入れるかどうかを尋ねられます。はい

画像-20211015162405747

問題がある場合は、redis-cli --cluster fix 192.168.33.11:6379 コマンドを使用して、問題のあるノードを修正できます。

redis-cli --cluster check 192.168.33.11:6379 は、ノードの問題点を確認できます

(5) クラスタに接続する

redis-cli -c -p 6379 を使用して接続します。-c はクラスター ポリシーを使用して接続し、設定データが対応するホストに自動的に切り替えられることを示します。これは、redis クラスターが非センター接続を使用するため、任意のノード接続に使用できます。つまり、コマンド 6379 は、6380 などの他のポート番号に置き換えることができます。

画像-20211015162800239

(6) ノード情報の表示

クラスタ ノードを使用して、クラスタ内のノード情報を表示できます。

画像-20211015163854551

3 スロットとは

Redis クラスターには 16384 個のスロット (ハッシュ スロット) が含まれており、データベース内の各キーはこれらの 16384 個のスロットのいずれかに属しています。
クラスターは、式 CRC16(key) % 16384 を使用して、キーが属するスロットを計算します。CRC16(key) ステートメントは、キーの CRC16 チェックサムを計算するために使用されます。クラスタ内の各ノードは、スロットのサブセットの処理を担当します

k1 v1 をクラスタに挿入. 計算後、スロット 12706 にデータを挿入する必要がありますが、ノード 6379 はスロット 0-5460 を維持しており、12706 はこの範囲ではなく、維持されている範囲内であることがわかります. 6381 によって、6381 のメンテナンス スロットに直接挿入されるため、この時点で自動的に 6381 ノードに切り替わります。

画像-20211015165649753

画像-20211015165909574

cluster keyslot [key] を使用して、キーがどのスロットにあるかを計算できます

画像-20211015170337828

cluster countkeysinslot [slot] を使用して、スロット内のキーの数を表示します

画像-20211015170534686

cluster getkeysinslot [slot] [count] は、count スロット スロットのキーを返します

画像-20211015170650837

4 障害回復

ホストがダウンした場合、スレーブは元のホストをホストとして置き換え、元のホストが再び接続するとスレーブになります。

特定のスロットのマスターとスレーブがダウンしていて、構成ファイルの cluster-require-full-coverage 構成が yes の場合、クラスター全体がハングアップし、no の場合、すべてのスロット データが停止します。使用できず、保管できません

Supongo que te gusta

Origin blog.csdn.net/weixin_42195126/article/details/120787271
Recomendado
Clasificación