要在Redis中创建和启动集群,我在
中使用create-cluster.sh文件/redis-3.04/utils/create-cluster
通过使用这个,我可以通过更改:
来创建我想要的任意数量的节点设置
PORT=30000
TIMEOUT=2000
NODES=10
REPLICAS=1.
我想知道我是否可以在开头创建10个节点(5个主服务器,5个从服务器),但只启动4个主服务器和4个服务器(满足和连接)。
提前致谢。
答案 0 :(得分:1)
是。如果现有群集上的负载增加,则可以添加更多节点。
基本步骤是:
启动新的redis实例 - 假设您要添加2个主服务器和从服务器(共4个redis实例)
然后使用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
在此新节点之后将分配一个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。
使用类似的步骤,您可以添加1个主从对。
由于这些节点不包含任何要投放的广告位,因此您已将部分广告位从现有母版移至新母版。(重新分片)
为此您可以运行以下命令/ 重新分配步骤:
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
并输入您已完成 注意:如果数据很大,可能需要一些时间才能重新设置。
几个命令:
要了解具有节点ID的群集和群集节点中的所有节点:
redis-cli -h node-ip -p node-port cluster nodes
e.g。 redis-cli -h 127.0.0.1 -p 7000簇节点
要了解群集中的所有广告位:
redis-cli -h 127.0.0.1 -p 7000个群集插槽
参考:https://redis.io/commands/cluster-nodes
希望这会有所帮助。