redis 5.0.2クラスタの構築
前言
私たちは日常的にredisの使用中に、よくいくつかの問題に遭遇します.高可用性の問題は、redisの持続的な高可用性を保証する方法です. 容量の問題で、単一インスタンスのredisメモリは無限に拡張できず、32 Gに達すると64ビットの世界に入り、性能が低下した. の同時性能の問題は、redisは単一のインスタンス10万同時と呼ばれているが、終わりがある.
ハッシュスロットの概念
Redisクラスタには16384個のハッシュスロットが内蔵されており、Redisクラスタにkey-valueを配置する必要がある場合、redisはまずkeyに対してcrc 16アルゴリズムを用いて結果を算出し、その後、結果を16384に対して残数を求める.これにより、各keyは0-16383の番号のハッシュスロットに対応する.redisは,ノード数に応じてハッシュスロットをほぼ均等に異なるノードにマッピングする.Redisクラスタはコンシステンシhashを用いず,ハッシュスロットの概念を導入した.Redisクラスタには16384個のハッシュスロットがあり、各keyはCRC 16の検査後に16384に対して型を取ることによってどのスロットを置くかを決定する.クラスタの各ノードはhashスロットの一部を担当する.この構造は、ノードの追加または削除が容易であり、ノードの追加または変更にかかわらず、クラスタが使用できない状態にはなりません.ハッシュスロットを使用する利点は、ノードの追加または削除を容易にすることにある.ノードを追加する必要がある場合は、他のノードのいくつかのハッシュスロットを新しいノードに移動するだけでよい.ノードを削除する必要がある場合は、削除ノード上のハッシュスロットを他のノードに移動するだけでよい.これにより、後でノードを新規または削除する際に、すべてのredisサービスを停止することなく実行を継続する.
redis-clusterの利点公式推薦は疑いの余地がない. は中心化されず、クラスタは最大1000個のノードを増加することができ、性能はノードの増加に伴って線形に拡張される. 管理が便利で、その後、ノードを追加または削除したり、スロットを移動したりすることができます. 簡単で、使いやすいです.
一.Redisクラスタ構成パラメータ
cluster-enabled:yesの場合、クラスタの有効化を示します.そうでなければ、cluster-config-fileを一例モードで起動します.オプションです.これはユーザーが編集できるプロファイルではありません.このファイルは、Redisクラスタノードが構成の変更を自動的に永続化し、起動時に再読み込みするためです.cluster-node-timeout:タイムアウト時間、クラスタノードが使用できない最大時間.マスターノードが指定した時間を超えて到達できない場合は、失敗したとみなされます.指定した時間内にほとんどのmasterノードに到達できない各ノードは、クエリー要求の受け入れを停止することに注意してください.cluster-slave-validity-factor:0に設定すると、slaveは常にmasterをフェイルオーバしようとします.正数に設定すると、最大接続を失う時間はnode timeoutにこのfactorを乗算します.cluster-migration-barrier:1つのmasterとslaveが接続を維持する最小数(すなわち、少なくともどれだけのslaveと接続を維持するか)、つまり少なくとも他のどれだけのslaveと接続を維持するslaveがmasterになる資格があるか.cluster-require-full-coverage:yesに設定されている場合は、key spaceがどれだけに達していない場合は、書き込み要求の受け入れを停止します.Noに設定されている場合、クエリ要求は、一部keyのみが要求されている場合でも受け入れられます.
二.Redisノードの作成
(1)異なるプロファイルノードの作成
redisディレクトリの下に8000から8005の異なる5つのノードを作成し、各ノードの下に各種のredisを新規作成する.confプロファイル
redisの下のredisをコピーします.confからredis/8000/以下、他のポート番号の順に実行
(2) redis.confプロファイル
ポート番号8000を例にとると、他のノードは下端スローガンを変更するだけです.
(3)各ポートインスタンスを順次起動する
別のポートが順次実行され、ポート番号が表示されます.
三.クラスタの構築
(1)rubyを取り付ける
比較的簡単なのはredis-tribツールで、srcディレクトリの下にあります.rubyプログラムなのでrubyをインストールする必要があります
yum install ruby yum install rubygems gem install redis
最後のコマンドを実行すると、次のような問題が発生する可能性があります.
(2).rubyのアップグレード
(1)curlを取り付ける
sudo yum install curl
(2)鍵key
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
(3)rvmのダウンロード
curl -sSL https://get.rvm.io | bash -s stable
(4)プロファイルの検索
find/-name rvm.sh
(5)プロファイルの有効化
source/etc/profile.d/rvm.sh
(6)rvm依存のダウンロード
rvm requirements
(7)rvmライブラリrubyバージョンの表示
rvm list known
(8)ruby指定バージョンのインストール
rvm install ruby-2.4.4
(9)rubyバージョンのデフォルトの使用
rvm use 2.4.4 default
(10)取付
gem install redis
3.その他の関連操作
(1)rubygemsをアンインストールshibaiをインストールする場合は、アンインストールする必要があります.
(2)rubyのredis拡張パッケージをアンインストールする
(3)redisパスの表示
find/-name “redis”
(4)gemのミラーアドレスの表示
(5)ミラーを移動し、新しいミラーを追加して元のgemソースを削除する
gem sources --remove https://rubygems.org/
国内ソースの追加
gem sources -a https://gems.ruby-china.com
(3)クラスタの作成
Redis5.0クラスタ管理ツールredis-trib.rbは廃棄されているので、rubyなどを取り付ける必要はありません.上にrubyを取り付ける方法針はredis 5についてです.0以下で使用する、当時redis-trib.rbの機能は、redis-cliに統合され、認証された状況で実行でき、./redis-cli--cluster help使用方法を表示します.redis-cliクラスタコマンドヘルプドキュメント
クラスタを作成するには、次の手順に従います.
問題が発生した場合
[ERR] Node 127.0.0.1:8000 is not empty. Either the node already knows other nodes (check with CLUSTE
生成されたプロファイルnodesを削除します.conf、できない場合は、現在作成するノードには古いクラスタのノード情報が含まれていることを示し、redisの永続化ファイルを削除してからredisを再起動する必要がある.例えば、appendonly.aof、dump.rdb
続けて
四.クラスタアクション
(1)クラスタ情報とクラスタノード情報の表示
クラスタ情報の表示
ノード情報の表示
(2)ノード情報の表示
ノード8001ポート番号のクラスタ情報を表示する
クラスタの正常な表示
(3)クライアント操作クラスタ
redis-cli -p 8001
こちらからMOVEDコマンドを提示すると、次のようになります.
クライアント接続に-cオプションを追加すると、keyを格納して抽出するときに8001と8002の間でジャンプし続け、これをクライアントリダイレクトと呼ぶことがわかります.クライアントリダイレクトが発生したのは、Redis Cluster内の各Masterノードが一部のスロット(slot)を担当し、アクセス時にキー空間計算を行い、位置決めkeyがどのスロット(slot)にマッピングされているかを計算し、マッピングされたスロット(slot)が現在のMasterノードが担当している場合は直接アクセスし、そうでなければ他のMasterノードの負のスロット(slot)にジャンプしてアクセスし、このプロセスはクライアントに対して透明です.以下のクラスタパーティションの原理を引き続き参照してください.
(4)ノードの削除
ポート番号8000のノードの削除:redis-cli--cluster del-node 127.0.0.1:8000
削除後にノード情報を再度表示
ポート番号8000のノードが存在しないことがわかりました
(5)ノードの追加
削除したポート8000のノードをクラスタの8001のプライマリノードに追加
ノード情報のクエリに成功しました
(6)各ノードスロット数のバランス
バランスをとる必要はありません.
私たちは日常的にredisの使用中に、よくいくつかの問題に遭遇します.
ハッシュスロットの概念
Redisクラスタには16384個のハッシュスロットが内蔵されており、Redisクラスタにkey-valueを配置する必要がある場合、redisはまずkeyに対してcrc 16アルゴリズムを用いて結果を算出し、その後、結果を16384に対して残数を求める.これにより、各keyは0-16383の番号のハッシュスロットに対応する.redisは,ノード数に応じてハッシュスロットをほぼ均等に異なるノードにマッピングする.Redisクラスタはコンシステンシhashを用いず,ハッシュスロットの概念を導入した.Redisクラスタには16384個のハッシュスロットがあり、各keyはCRC 16の検査後に16384に対して型を取ることによってどのスロットを置くかを決定する.クラスタの各ノードはhashスロットの一部を担当する.この構造は、ノードの追加または削除が容易であり、ノードの追加または変更にかかわらず、クラスタが使用できない状態にはなりません.ハッシュスロットを使用する利点は、ノードの追加または削除を容易にすることにある.ノードを追加する必要がある場合は、他のノードのいくつかのハッシュスロットを新しいノードに移動するだけでよい.ノードを削除する必要がある場合は、削除ノード上のハッシュスロットを他のノードに移動するだけでよい.これにより、後でノードを新規または削除する際に、すべてのredisサービスを停止することなく実行を継続する.
redis-clusterの利点
一.Redisクラスタ構成パラメータ
cluster-enabled:yesの場合、クラスタの有効化を示します.そうでなければ、cluster-config-file
二.Redisノードの作成
(1)異なるプロファイルノードの作成
redisディレクトリの下に8000から8005の異なる5つのノードを作成し、各ノードの下に各種のredisを新規作成する.confプロファイル
cd redis
mkdir 8000 8001 8002 8003 8004 8005
redisの下のredisをコピーします.confからredis/8000/以下、他のポート番号の順に実行
cd redis
cp redis.conf /redis/8000/
(2) redis.confプロファイル
ポート番号8000を例にとると、他のノードは下端スローガンを変更するだけです.
protected-mode no
port 8000
cluster-enabled yes
cluster-config-file nodes-8000.conf
cluster-node-timeout 5000
daemonize yes
pidfile /var/run/redis_8000.pid
logfile "8000.log"
dir /redis/data
bind 127.0.0.1
(3)各ポートインスタンスを順次起動する
cd redis
cd 8000/redis-server redis.conf
別のポートが順次実行され、ポート番号が表示されます.
[root@localhost 8005]# ps -ef|grep redis
[root@localhost 8005]# ps -ef|grep redis
root 3140 1 0 18:11 ? 00:00:00 redis-server 127.0.0.1:8000 [cluster]
root 3153 1 0 18:12 ? 00:00:00 redis-server 127.0.0.1:8001 [cluster]
root 3158 1 0 18:12 ? 00:00:00 redis-server 127.0.0.1:8002 [cluster]
root 3163 1 0 18:12 ? 00:00:00 redis-server 127.0.0.1:8003 [cluster]
root 3168 1 0 18:12 ? 00:00:00 redis-server 127.0.0.1:8004 [cluster]
root 3173 1 0 18:12 ? 00:00:00 redis-server 127.0.0.1:8005 [cluster]
root 3178 2043 0 18:12 pts/0 00:00:00 grep --color=auto redis
三.クラスタの構築
(1)rubyを取り付ける
比較的簡単なのはredis-tribツールで、srcディレクトリの下にあります.rubyプログラムなのでrubyをインストールする必要があります
yum install ruby yum install rubygems gem install redis
最後のコマンドを実行すると、次のような問題が発生する可能性があります.
[root@localhost /]# gem install redis
Fetching: redis-4.0.3.gem (100%)
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.
(2).rubyのアップグレード
(1)curlを取り付ける
sudo yum install curl
(2)鍵key
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
(3)rvmのダウンロード
curl -sSL https://get.rvm.io | bash -s stable
(4)プロファイルの検索
find/-name rvm.sh
(5)プロファイルの有効化
source/etc/profile.d/rvm.sh
(6)rvm依存のダウンロード
rvm requirements
(7)rvmライブラリrubyバージョンの表示
rvm list known
(8)ruby指定バージョンのインストール
rvm install ruby-2.4.4
(9)rubyバージョンのデフォルトの使用
rvm use 2.4.4 default
(10)取付
gem install redis
3.その他の関連操作
(1)rubygemsをアンインストールshibaiをインストールする場合は、アンインストールする必要があります.
yum remove rubygems -y
(2)rubyのredis拡張パッケージをアンインストールする
gem uninstall redis --version 3.3.3
(3)redisパスの表示
find/-name “redis”
(4)gemのミラーアドレスの表示
$ gem sources -l
*** CURRENT SOURCES ***
https://rubygems.org/
(5)ミラーを移動し、新しいミラーを追加して元のgemソースを削除する
gem sources --remove https://rubygems.org/
国内ソースの追加
gem sources -a https://gems.ruby-china.com
(3)クラスタの作成
Redis5.0クラスタ管理ツールredis-trib.rbは廃棄されているので、rubyなどを取り付ける必要はありません.上にrubyを取り付ける方法針はredis 5についてです.0以下で使用する、当時redis-trib.rbの機能は、redis-cliに統合され、認証された状況で実行でき、./redis-cli--cluster help使用方法を表示します.redis-cliクラスタコマンドヘルプドキュメント
[root@localhost src]# redis-cli --cluster help
Cluster Manager Commands:
create host1:port1 ... hostN:portN
--cluster-replicas <arg>
check host:port
info host:port
fix host:port
reshard host:port
--cluster-from <arg>
--cluster-to <arg>
--cluster-slots <arg>
--cluster-yes
--cluster-timeout <arg>
--cluster-pipeline <arg>
rebalance host:port
--cluster-weight <node1=w1...nodeN=wN>
--cluster-use-empty-masters
--cluster-timeout <arg>
--cluster-simulate
--cluster-pipeline <arg>
--cluster-threshold <arg>
add-node new_host:new_port existing_host:existing_port
--cluster-slave
--cluster-master-id <arg>
del-node host:port node_id
call host:port command arg arg .. arg
set-timeout host:port milliseconds
import host:port
--cluster-from <arg>
--cluster-copy
--cluster-replace
help
クラスタを作成するには、次の手順に従います.
redis-cli --cluster create 127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 --cluster-replicas 1
問題が発生した場合
[ERR] Node 127.0.0.1:8000 is not empty. Either the node already knows other nodes (check with CLUSTE
生成されたプロファイルnodesを削除します.conf、できない場合は、現在作成するノードには古いクラスタのノード情報が含まれていることを示し、redisの永続化ファイルを削除してからredisを再起動する必要がある.例えば、appendonly.aof、dump.rdb
続けて
[root@localhost 8005]# redis-cli --cluster create 127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:8003 to 127.0.0.1:8000
Adding replica 127.0.0.1:8004 to 127.0.0.1:8001
Adding replica 127.0.0.1:8005 to 127.0.0.1:8002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: f70c555de0ab6863247271b03570dcb017748a1d 127.0.0.1:8000
slots:[0-5460] (5461 slots) master
M: 1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001
slots:[5461-10922] (5462 slots) master
M: 9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002
slots:[10923-16383] (5461 slots) master
S: 298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003
replicates 9f103d9ecc5506b095919154dfb80bc8cfbb414e
S: e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004
replicates f70c555de0ab6863247271b03570dcb017748a1d
S: 4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005
replicates 1c2dd486c7f885f86501932c144da131c68fdcad
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node 127.0.0.1:8000)
M: f70c555de0ab6863247271b03570dcb017748a1d 127.0.0.1:8000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004
slots: (0 slots) slave
replicates f70c555de0ab6863247271b03570dcb017748a1d
M: 1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003
slots: (0 slots) slave
replicates 9f103d9ecc5506b095919154dfb80bc8cfbb414e
M: 9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005
slots: (0 slots) slave
replicates 1c2dd486c7f885f86501932c144da131c68fdcad
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost 8005]#
四.クラスタアクション
(1)クラスタ情報とクラスタノード情報の表示
クラスタ情報の表示
127.0.0.1:8000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:2902
cluster_stats_messages_pong_sent:1422
cluster_stats_messages_fail_sent:4
cluster_stats_messages_sent:4328
cluster_stats_messages_ping_received:1422
cluster_stats_messages_pong_received:1446
cluster_stats_messages_fail_received:7
cluster_stats_messages_received:2875
ノード情報の表示
127.0.0.1:8002> cluster nodes
298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003@18003 slave 9f103d9ecc5506b095919154dfb80bc8cfbb414e 0 1544402618000 4 connected
1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001@18001 master - 0 1544402617072 2 connected 5461-10922
9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002@18002 myself,master - 0 1544402616000 3 connected 10923-16383
e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004@18004 master - 0 1544402618478 7 connected 0-5460
4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005@18005 slave 1c2dd486c7f885f86501932c144da131c68fdcad 0 1544402617473 6 connected
f70c555de0ab6863247271b03570dcb017748a1d 127.0.0.1:8000@18000 slave e57e483ae48a85d95e1374bf4ba486e7a4df256b 0 1544402617000 7 connected
(2)ノード情報の表示
ノード8001ポート番号のクラスタ情報を表示する
[root@localhost src]# redis-cli --cluster check 127.0.0.1:8001
127.0.0.1:8001 (1c2dd486...) -> 1 keys | 5462 slots | 1 slaves.
127.0.0.1:8002 (9f103d9e...) -> 1 keys | 5461 slots | 1 slaves.
127.0.0.1:8004 (e57e483a...) -> 0 keys | 5461 slots | 0 slaves.
[OK] 2 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 127.0.0.1:8001)
M: 1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004
slots:[0-5460] (5461 slots) master
S: 298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003
slots: (0 slots) slave
replicates 9f103d9ecc5506b095919154dfb80bc8cfbb414e
S: 4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005
slots: (0 slots) slave
replicates 1c2dd486c7f885f86501932c144da131c68fdcad
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
クラスタの正常な表示
(3)クライアント操作クラスタ
redis-cli -p 8001
[root@localhost src]# redis-cli -p 8001
127.0.0.1:8001> get a
(error) MOVED 15495 127.0.0.1:8002
127.0.0.1:8001>
こちらからMOVEDコマンドを提示すると、次のようになります.
[root@localhost src]# redis-cli -c -p 8001
127.0.0.1:8001> get a
-> Redirected to slot [15495] located at 127.0.0.1:8002
"aaaa"
127.0.0.1:8002>
クライアント接続に-cオプションを追加すると、keyを格納して抽出するときに8001と8002の間でジャンプし続け、これをクライアントリダイレクトと呼ぶことがわかります.クライアントリダイレクトが発生したのは、Redis Cluster内の各Masterノードが一部のスロット(slot)を担当し、アクセス時にキー空間計算を行い、位置決めkeyがどのスロット(slot)にマッピングされているかを計算し、マッピングされたスロット(slot)が現在のMasterノードが担当している場合は直接アクセスし、そうでなければ他のMasterノードの負のスロット(slot)にジャンプしてアクセスし、このプロセスはクライアントに対して透明です.以下のクラスタパーティションの原理を引き続き参照してください.
(4)ノードの削除
ポート番号8000のノードの削除:redis-cli--cluster del-node 127.0.0.1:8000
[root@localhost src]# redis-cli --cluster del-node 127.0.0.1:8000 f70c555de0ab6863247271b03570dcb017748a1d
>>> Removing node f70c555de0ab6863247271b03570dcb017748a1d from cluster 127.0.0.1:8000
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
削除後にノード情報を再度表示
127.0.0.1:8001> cluster nodes
9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002@18002 master - 0 1544406706289 3 connected 10923-16383
1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001@18001 myself,master - 0 1544406705000 2 connected 5461-10922
e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004@18004 master - 0 1544406705000 7 connected 0-5460
298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003@18003 slave 9f103d9ecc5506b095919154dfb80bc8cfbb414e 0 1544406705284 4 connected
4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005@18005 slave 1c2dd486c7f885f86501932c144da131c68fdcad 0 1544406706000 6 connected
ポート番号8000のノードが存在しないことがわかりました
(5)ノードの追加
削除したポート8000のノードをクラスタの8001のプライマリノードに追加
[root@localhost 8005]# redis-cli --cluster add-node 127.0.0.1:8000 127.0.0.1:8001
>>> Adding node 127.0.0.1:8000 to cluster 127.0.0.1:8001
>>> Performing Cluster Check (using node 127.0.0.1:8001)
M: 1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004
slots:[0-5460] (5461 slots) master
M: 9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005
slots: (0 slots) slave
replicates 1c2dd486c7f885f86501932c144da131c68fdcad
S: 298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003
slots: (0 slots) slave
replicates 9f103d9ecc5506b095919154dfb80bc8cfbb414e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 127.0.0.1:8000 to make it join the cluster.
[OK] New node added correctly.
[root@localhost 8005]# redis-cli -c -p 8000
127.0.0.1:8000> cluster nodes
298c94aa55f1cdcf53918fd9301f617b6dca37f7 127.0.0.1:8003@18003 slave 9f103d9ecc5506b095919154dfb80bc8cfbb414e 0 1544411418529 3 connected
e57e483ae48a85d95e1374bf4ba486e7a4df256b 127.0.0.1:8004@18004 master - 0 1544411418000 7 connected 0-5460
ef3394bfe7574d617960422a9f3b7009cd2923eb 127.0.0.1:8000@18000 myself,master - 0 1544411417000 0 connected
1c2dd486c7f885f86501932c144da131c68fdcad 127.0.0.1:8001@18001 master - 0 1544411416519 2 connected 5461-10922
9f103d9ecc5506b095919154dfb80bc8cfbb414e 127.0.0.1:8002@18002 master - 0 1544411418328 3 connected 10923-16383
4c61c720fa60a3d507fe355ae27218b0ac096f8a 127.0.0.1:8005@18005 slave 1c2dd486c7f885f86501932c144da131c68fdcad 0 1544411416820 2 connected
127.0.0.1:8000>
ノード情報のクエリに成功しました
(6)各ノードスロット数のバランス
[root@localhost 8005]# redis-cli --cluster rebalance --cluster-threshold 1 127.0.0.1:8000
>>> Performing Cluster Check (using node 127.0.0.1:8000)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
*** No rebalancing needed! All nodes are within the 1.00% threshold.
バランスをとる必要はありません.