Windows 10 Redisクラスタ環境の構築


1、最新のredisインストールパッケージをダウンロードする:redisダウンロードアドレス
2.redis圧縮パッケージを解凍後、redis.confファイルは変更され、キーコードは以下のように変更されます.
port 7005
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

ファイルのcluster-enabledオプションは、インスタンスのクラスタモードを開くために使用され、cluster-conf-fileオプションは、ノードプロファイルを保存するパスを設定し、デフォルトはnodes.confです.
3、クラスタ3のマスター3従の環境を示すために、redis解凍パッケージのルートディレクトリの下に6つのフォルダを作成し、フォルダ名をポート番号で命名し、redisを作成する.confはそれぞれ対応するポートフォルダの下にコピーし、対応するファイルのポートアドレスとcluster-config-fileの後ろのファイル名を変更します.
4、次のコマンドを使用して、対応するredisサーバーを起動する
redis-server ./redis.conf

Note:インスタンスは常に同じIDを使用し、クラスタ内でユニークな名前を維持します.
各ノードは、IPアドレスとポート番号が変更される可能性があるため、IPまたはポート番号ではなくIDを使用して他のノードを記録します.このユニークな識別子(identifier)は、ノードのライフサイクル全体で変わらないままです.
5、クラスタの作成
すでに6つの実行中のRedisインスタンスがあります.次に、これらのインスタンスを使用してクラスタを作成し、ノードごとにプロファイルを作成する必要があります.
Redisクラスタコマンドラインツールredis-tribを使用して、アドレスをダウンロードします.これはRubyプログラムです.このプログラムは、インスタンスに特殊なコマンドを送信することによって、新しいクラスタの作成、クラスタのチェック、またはクラスタの再スライスなどの作業を完了します.Rubyプログラムを実行するには、Ruby実行環境アドレスを以下のようにインストールする必要があります.
クラスタを作成するには、次のコマンドを実行する必要があります.
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

Note:redis-trib.rb create:クラスタを作成する
--replicas:クラスタ内のプライマリノードごとにスレーブノードを作成する
このコマンドを実行すると、redis-tribはマスターライブラリの構成情報を含む構成リストを印刷し、yesを入力してインストールを続行します.
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7000 replica #1 is 127.0.0.1:7003
127.0.0.1:7001 replica #1 is 127.0.0.1:7004
127.0.0.1:7002 replica #1 is 127.0.0.1:7005
M: 9991306f0e50640a5684f1958fd754b38fa034c9 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: e68e52cee0550f558b03b342f2f0354d2b8a083b 127.0.0.1:7001
slots:5461-10921 (5461 slots) master
M: 393c6df5eb4b4cec323f0e4ca961c8b256e3460a 127.0.0.1:7002
slots:10922-16383 (5462 slots) master
S: 48b728dbcedff6bf056231eb44990b7d1c35c3e0 127.0.0.1:7003
S: 345ede084ac784a5c030a0387f8aaa9edfc59af3 127.0.0.1:7004
S: 3375be2ccc321932e8853234ffa87ee9fde973ff 127.0.0.1:7005
Can I set the above configuration? (type 'yes' to accept): yes

構成が完了すると、redis-tribは次の情報を出力します.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

出力情報から、すべてのスロットに少なくとも1つのプライマリノードがあり、正常に動作していることがわかります.
テストクラスタ:redis-cliを使用します.exe
E:\study\Redis-x64-3.2.100>redis-cli.exe -c -p 7005
127.0.0.1:7005> get k1
-> Redirected to slot [12706] located at 127.0.0.1:7002
"v2"
127.0.0.1:7002> get k2
-> Redirected to slot [449] located at 127.0.0.1:7000
"v2"
127.0.0.1:7000>
redisに依存して正しいノードに移行していることがわかります.