Redis集群如何启动一定数量的节点
How to start certain number of nodes in Redis cluster
要在 Redis 中创建和启动集群,我在
中使用 create-cluster.sh 文件
/redis-3.04/utils/create-cluster
通过使用它,我可以通过更改来创建任意数量的节点:
设置
PORT=30000
TIMEOUT=2000
NODES=10
REPLICAS=1.
我想知道我是否可以在开始时创建例如 10 个节点(5 个主节点和 5 个从节点)但只启动 4 个主节点和 4 个从节点(会面并加入)。
提前致谢。
是的。如果现有集群的负载增加,您可以添加更多节点。
基本步骤是:
启动新的 redis 实例 - 假设您想再添加 2 个 master 和 slave(总共 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 和 运行 以下命令将从节点添加到我们在上一步
中添加的节点
/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 是 192.168.1.16:7000 的 ID。
使用类似的步骤,您可以再添加 1 个主从对。
由于这些节点不包含任何可服务的插槽,您已将一些插槽从现有主节点移动到新主节点。(重新分片)
你可以运行按照命令/重新分片步骤:
6.1 ./redis-trib.rb reshard <any-master-ip>:<master-port>
6.2 它会问:你想移动多少槽(从 1 到 16384)? => 输入你想移动的槽数
6.3 然后会问:接收节点ID是多少?
6.4 输入需要移动槽的节点id。 (新主人)
6.5 会提示:
请输入所有源节点 ID。
键入 'all' 以将所有节点用作哈希槽的源节点。
输入所有源节点 ID 后键入 'done'。
源节点 #1:(输入源节点 ID 或全部)
6.6 然后会提示信息说 Moving slot n to node node-id like
从 37d10f18f349a6a5682c791bff90e0188ae35e49 移动插槽 10960
从 37d10f18f349a6a5682c791bff90e0188ae35e49 移动插槽 10961
从 37d10f18f349a6a5682c791bff90e0188ae35e49
移动插槽 10962
6.7 它会询问:你想继续执行建议的重新分片计划(yes/no)吗? 输入 Yes
并输入 你完成了 .
注意:如果数据很大,重新分片可能需要一些时间。
很少的命令:
要知道集群中的所有节点和集群节点的节点id:
redis-cli -h node-ip -p node-port 集群节点
例如redis-cli -h 127.0.0.1 -p 7000 个集群节点
要了解集群中的所有插槽:
redis-cli -h 127.0.0.1 -p 7000 个集群槽
参考:https://redis.io/commands/cluster-nodes
希望对您有所帮助。
要在 Redis 中创建和启动集群,我在
中使用 create-cluster.sh 文件/redis-3.04/utils/create-cluster
通过使用它,我可以通过更改来创建任意数量的节点:
设置
PORT=30000
TIMEOUT=2000
NODES=10
REPLICAS=1.
我想知道我是否可以在开始时创建例如 10 个节点(5 个主节点和 5 个从节点)但只启动 4 个主节点和 4 个从节点(会面并加入)。
提前致谢。
是的。如果现有集群的负载增加,您可以添加更多节点。
基本步骤是:
启动新的 redis 实例 - 假设您想再添加 2 个 master 和 slave(总共 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 和 运行 以下命令将从节点添加到我们在上一步
中添加的节点/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 是 192.168.1.16:7000 的 ID。使用类似的步骤,您可以再添加 1 个主从对。
由于这些节点不包含任何可服务的插槽,您已将一些插槽从现有主节点移动到新主节点。(重新分片)
你可以运行按照命令/重新分片步骤:
6.1
./redis-trib.rb reshard <any-master-ip>:<master-port>
6.2 它会问:你想移动多少槽(从 1 到 16384)? => 输入你想移动的槽数
6.3 然后会问:接收节点ID是多少?
6.4 输入需要移动槽的节点id。 (新主人)
6.5 会提示: 请输入所有源节点 ID。 键入 'all' 以将所有节点用作哈希槽的源节点。 输入所有源节点 ID 后键入 'done'。 源节点 #1:(输入源节点 ID 或全部)
6.6 然后会提示信息说 Moving slot n to node node-id like
从 37d10f18f349a6a5682c791bff90e0188ae35e49 移动插槽 10960 从 37d10f18f349a6a5682c791bff90e0188ae35e49 移动插槽 10961 从 37d10f18f349a6a5682c791bff90e0188ae35e49
移动插槽 109626.7 它会询问:你想继续执行建议的重新分片计划(yes/no)吗? 输入
Yes
并输入 你完成了 .
注意:如果数据很大,重新分片可能需要一些时间。
很少的命令:
要知道集群中的所有节点和集群节点的节点id:
redis-cli -h node-ip -p node-port 集群节点
例如redis-cli -h 127.0.0.1 -p 7000 个集群节点
要了解集群中的所有插槽:
redis-cli -h 127.0.0.1 -p 7000 个集群槽
参考:https://redis.io/commands/cluster-nodes
希望对您有所帮助。