如何在Redis群集中启动一定数量的节点

时间:2017-05-26 12:09:22

标签: redis stackexchange.redis

要在Redis中创建和启动集群,我在

中使用create-cluster.sh文件
  

/redis-3.04/utils/create-cluster

通过使用这个,我可以通过更改:

来创建我想要的任意数量的节点

设置

PORT=30000 
TIMEOUT=2000 
NODES=10 
REPLICAS=1.

我想知道我是否可以在开头创建10个节点(5个主服务器,5个从服务器),但只启动4个主服务器和4个服务器(满足和连接)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

是。如果现有群集上的负载增加,则可以添加更多节点。

基本步骤是:

  1. 启动新的redis实例 - 假设您要添加2个主服务器和从服务器(共4个redis实例)

  2. 然后使用redis-trib实用程序执行以下操作:

    redis-trib.rb add-node <new master node:port> <any existing master> 例如./redis-trib.rb add-node 192.168.1.16:7000 192.168.1.15:7000

  3. 在此新节点之后将分配一个id。请注意,id和run follow命令将slave添加到我们在prev步骤中添加的节点

    /redis-trib.rb add-node --slave --master-id <master-node-id> <new-node> <master-node> ./redis-trib.rb add-node --slave --master-id 6f9db976c3792e06f9cd252aec7cf262037bea4a 192.168.1.17:7000 192.168.1.16:7000 其中6f9db976c3792e06f9cd252aec7cf262037bea4a的id为192.168.1.16:7000。

  4. 使用类似的步骤,您可以添加1个主从对。

  5. 由于这些节点不包含任何要投放的广告位,因此您已将部分广告位从现有母版移至新母版。(重新分片

  6. 为此您可以运行以下命令/ 重新分配步骤

    6.1 ./redis-trib.rb reshard <any-master-ip>:<master-port>

    6.2它会询问:您想要移动多少个插槽(从1到16384)? =&gt;输入要移动的插槽数

    6.3然后它会询问:什么是接收节点ID?

    6.4输入需要移动插槽的节点ID。 (新主人)

    6.5它会提示: 请输入所有源节点ID。 键入&#39; all&#39;将所有节点用作散列槽的源节点。 类型&#39;已完成&#39;输入所有源节点ID后 源节点#1:输入源节点ID或全部

    6.6然后它会提示信息说将插槽n移动到节点node-id,如

    从37d10f18f349a6a5682c791bff90e0188ae35e49移动槽10960 移动槽10961从37d10f18f349a6a5682c791bff90e0188ae35e49 移动槽10962从37d10f18f349a6a5682c791bff90e0188ae35e49

    <7> 6.7它会询问:您是否要继续提议的reshard计划(是/否)?输入Yes并输入您已完成

  7. 注意:如果数据很大,可能需要一些时间才能重新设置。

    几个命令:

    1. 要了解具有节点ID的群集和群集节点中的所有节点:

      redis-cli -h node-ip -p node-port cluster nodes

      e.g。 redis-cli -h 127.0.0.1 -p 7000簇节点

    2. 要了解群集中的所有广告位:

      redis-cli -h 127.0.0.1 -p 7000个群集插槽

    3. 参考:https://redis.io/commands/cluster-nodes

      希望这会有所帮助。