如何在 redis cluster cli 中轻松切换节点?

如何在 redis cluster cli 中轻松切换节点?

我有一个三节点的 redis 集群。

如果我cluster nodes通过 连接到其中一个节点后运行redis-cli,我会得到以下输出:

10.0.32.70:6379> cluster nodes
fedd7d9220ca59045782050e9c418103fdeee3bf 10.0.33.13:6379@1122 slave 56ada5e1cc30ba1889950df4c4203b856wc83558 0 1595241803685 2 connected
9eac3667c13055555555a52b20628da372dadc21 10.0.32.161:6379@1122 slave 81777bc32d3ff82da733e4b8f36a14e8de25e057 0 1595241801000 1 connected
861e7ed26924bcccccccaa23b1977982397000e7 10.0.33.231:6379@1122 slave 10397e832212231dc40ec687798f245a39007506 0 1595241802678 3 connected
10397e832212231dc40ec687798f245a39007506 10.0.32.117:6379@1122 master - 0 1595241801671 3 connected 10923-16383
81777bc32d3ff82da733e4b8f36a14e8de25e057 10.0.33.11:6379@1122 master - 0 1595241802000 1 connected 5462-10922
56ada5e1cc30ba1889950df4c4203b856wc83558 10.0.32.70:6379@1122 myself,master - 0 1595241801000 2 connected 0-5461

现在我想从当前节点切换到不同的节点。

当我使用时select,出现以下错误:

> select 1
(error) ERR SELECT is not allowed in cluster mode

get 1我可以使用、 ... 等来触发开关get 2(基本上是带有随机整数的 get 命令)。经过几次尝试和错误,我就能找到正确的节点。

有更容易的方法吗?

答案1

你可以尝试<节点的 id>. 就你的情况而言。

get 10397e832212231dc40ec687798f245a39007506
get 81777bc32d3ff82da733e4b8f36a14e8de25e057
get 56ada5e1cc30ba1889950df4c4203b856wc83558

您只能使用 get 连接到主节点。如果您尝试使用 get 连接到从属节点。它将仅连接到主节点。

答案2

在 redis-cli 内部,您还可以执行以下任一操作:

connect 10.0.33.11 6379

或者在我的测试集群上

connect localhost 30002

答案3

一个可能有用的技巧:在我的测试集群上(通过 create-cluster 命令,3 节点,默认映射),通过反复试验,我找到了 3 个可以更快地输入以切换节点的快捷键:

get 3  (node 1)
get 1  (node 2)
get 4  (node 3)

(3.14,与 PI 类似)

您必须首先运行在设置/获取密钥时自动切换节点的选项redis-cli-c

如果您的集群映射不同,您可以开始使用 get 来查找适用于您的集群的简短但容易记住的映射。显然,集群映射将来可能会发生变化,因此您不会想在任何永久脚本/代码中使用它。

相关内容