Redis 3.0クラスタ(二)

2613 ワード

Redis 3.0クラスタ(一)ではRedisクラスタの基本構築について述べた.この節では主にRedisクラスタの動作について述べる.
クラスタへのMasterノードの追加
  • Redisクラスタ1のようにポート7006の新しいインスタンスを作成し、そのインスタンスを起動する
  • 7006をクラスタに追加:
  • 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クラスタ1のようにポート7007の新しいインスタンスを作成し、そのインスタンスを起動する
  • 7007をクラスタに追加:
  • redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7000
  • 7006に設定されたslave:
  • 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'