如何从Redis集群中删除节点?

7
我谷歌搜索并找到了两种解决方案:
  1. CLUSTER FORGET (http://redis.io/commands/cluster-forget)

  2. redis-trib.rb del-node

我认为使用CLUSTER FORGET是正确的方法。
但我真的想知道关于redis-trib.rb del-node的详细信息。
有人能解释一下它们之间的区别吗?
4个回答

5

redis-trib.rb是一个ruby实用程序脚本,由antirez(领导redis开发人员)构建,作为基本redis集群命令上的管理工具的参考实现。

在内部,redis-trib使用CLUSTER FORGET来实现自己的管理del-node命令。https://github.com/antirez/redis/blob/unstable/src/redis-trib.rb#L1374

Redis-trib更易于使用。如果您正在执行CLUSTER FORGET,则需要循环遍历并将该命令发送到系统中的每个其他节点,而del-node将自动化该过程。


3

自 Redis 6.2.3 起

注意:redis-trib.rb 已不再可用!您应该使用 redis-cli。

所有属于 redis-trib.rb 的命令和特性都已经转移到了 redis-cli 中。 为了使用它们,您应该使用 redis-cli 命令,后跟 --cluster 选项,然后是子命令名称、参数和选项。

请按照以下语法使用: redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]

例如:redis-cli --cluster info 127.0.0.1:6382


~$ redis-cli
127.0.0.1:6379> CLUSTER HELP
127.0.0.1:6379> CLUSTER NODES
127.0.0.1:6379> CLUSTER FORGET <node-id>

2
src/redis-trib.rb del-node 192.168.0.211:6379 650e3746968e6b7c7e357f06adbde5b3b92fcceb

注意:

  • 192.168.0.211:6379 这是集群中的任意节点
  • 650e3746968e6b7c7e357f06adbde5b3b92fcceb 这是您要移除的节点的集群ID。您可以从"cluster nodes"命令获取此ID的值。

0

根据Redis文章,您应该使用以下命令:

redis-cli --cluster del-node 127.0.0.1:7000

其中第一个参数是您的集群节点之一。

请参阅以下文章中的“删除节点”部分:

https://redis.io/docs/manual/scaling/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接