Redis クラスター
1 コンセプト
Redis クラスターは Redis の水平展開を実現します。つまり、N 個の redis ノードを起動し、データベース全体をこれらの N 個のノードに分散して格納し、各ノードに合計 1N 個のデータを格納します。Redis クラスターは、パーティションを通じてある程度の可用性 (可用性) を提供します。クラスター内の一部のノードに障害が発生したり、通信できなくなったりしても、クラスターはコマンド要求を処理し続けることができます。
2 Redis クラスタの構築
(1) rdb などの空の永続ファイル
(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 ノードの切断時間を設定します。この時間 (ミリ秒) を超えると、クラスターは自動的にマスターとスレーブを切り替えます
同様に、他の 5 つのファイルを構成し、6379 を対応する ID に変更するだけです
(3) 6つのredisサービスを開始
状態をチェック
nodes-xxxx.conf ファイルが正しく生成されていることを確認します
(4) 6ノードをまとめてクラスタ化
最初に、私の redis が /opt の下にインストールされている redis インストール ディレクトリに src ディレクトリを入力します。
使用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 つのグループという最も単純な方法でクラスターを構成することを意味します。
その後、この配布方法を受け入れるかどうかを尋ねられます。はい
問題がある場合は、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 などの他のポート番号に置き換えることができます。
(6) ノード情報の表示
クラスタ ノードを使用して、クラスタ内のノード情報を表示できます。
3 スロットとは
Redis クラスターには 16384 個のスロット (ハッシュ スロット) が含まれており、データベース内の各キーはこれらの 16384 個のスロットのいずれかに属しています。
クラスターは、式 CRC16(key) % 16384 を使用して、キーが属するスロットを計算します。CRC16(key) ステートメントは、キーの CRC16 チェックサムを計算するために使用されます。クラスタ内の各ノードは、スロットのサブセットの処理を担当します
k1 v1 をクラスタに挿入. 計算後、スロット 12706 にデータを挿入する必要がありますが、ノード 6379 はスロット 0-5460 を維持しており、12706 はこの範囲ではなく、維持されている範囲内であることがわかります. 6381 によって、6381 のメンテナンス スロットに直接挿入されるため、この時点で自動的に 6381 ノードに切り替わります。
cluster keyslot [key] を使用して、キーがどのスロットにあるかを計算できます
cluster countkeysinslot [slot] を使用して、スロット内のキーの数を表示します
cluster getkeysinslot [slot] [count] は、count スロット スロットのキーを返します
4 障害回復
ホストがダウンした場合、スレーブは元のホストをホストとして置き換え、元のホストが再び接続するとスレーブになります。
特定のスロットのマスターとスレーブがダウンしていて、構成ファイルの cluster-require-full-coverage 構成が yes の場合、クラスター全体がハングアップし、no の場合、すべてのスロット データが停止します。使用できず、保管できません