Redis 3.0クラスタ(二)
Redis 3.0クラスタ(一)ではRedisクラスタの基本構築について述べた.この節では主にRedisクラスタの動作について述べる.
クラスタへのMasterノードの追加Redisクラスタ1のようにポート7006の新しいインスタンスを作成し、そのインスタンスを起動する 7006をクラスタに追加:
Node:新しいノードにはslotが含まれていないため、データは含まれていません.新しく追加されたポイントはプライマリノードであり、クラスタがノードから新しいプライマリノードにアップグレードする必要がある場合、この新しいノードは選択されません.新しいノードにハッシュスロットを割り当てる: 操作結果の表示:
返されるクラスタ情報には,7006が0−999ハッシュスロットを有することがわかる.
Slaveノードをクラスタに追加Redisクラスタ1のようにポート7007の新しいインスタンスを作成し、そのインスタンスを起動する 7007をクラスタに追加: 7006に設定されたslave:
Slaveノードを削除
Masterノードを削除
マスターノードを削除する前にreshardを使用してマスターのすべてのslotを削除してから、現在のノードを削除します(現在は削除されたマスターのslotを1つのノードに移行するしかありません).
クラスタへのMasterノードの追加
redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
Node:新しいノードにはslotが含まれていないため、データは含まれていません.新しく追加されたポイントはプライマリノードであり、クラスタがノードから新しいプライマリノードにアップグレードする必要がある場合、この新しいノードは選択されません.
redis-trib.rb reshard 127.0.0.1:7000
# slot (ps: 500)
How many slots do you want to move (from 1 to 16384)? 500
# slot node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
# slot :
#all master ,
# slot master id, done
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
# slot , yes slot .
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#
redis-cli -c -p 7000
cluster nodes
返されるクラスタ情報には,7006が0−999ハッシュスロットを有することがわかる.
Slaveノードをクラスタに追加
redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7000
redis-cli -c -p 7007
# master ID
cluster replicate 2b9ebcbd627ff0fd7a7bbcc5332fb09e72788835
Slaveノードを削除
#redis-trib del-node ip:port '<node-id>'
redis-trib.rb del-node 127.0.0.1:7007 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'
Masterノードを削除
マスターノードを削除する前にreshardを使用してマスターのすべてのslotを削除してから、現在のノードを削除します(現在は削除されたマスターのslotを1つのノードに移行するしかありません).
redis-trib.rb reshard 127.0.0.1:7006
# slot (ps: 500)
How many slots do you want to move (from 1 to 16384)? 500
# slot node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
# slot :
#all master ,
# slot master id, done
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
# slot , yes slot .
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#
# master
redis-trib.rb del-node 127.0.0.1:7006 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'