【问题标题】:redis cluster set and get not happening with all the nodesredis 集群设置并没有在所有节点上发生
【发布时间】:2018-08-01 14:12:34
【问题描述】:

我是 redis 的新手。

我有多个 redis 实例正在运行。当我尝试设置密钥时,我收到错误为“MOVED xxxx IP:port。

我应该能够使用集群中的任何节点进行设置和获取。有人可以帮我我想念什么。

root@redis-0:/# redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set name1 Rock
(error) MOVED 12933 10.60.3.54:6379
127.0.0.1:6379>
127.0.0.1:6379>
root@redis-0:/#
root@redis-0:/# exit


root@redis-1:/#
root@redis-1:/# redis-cli
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> get name1
"deba"
127.0.0.1:6379>
127.0.0.1:6379> set name2 Tom
(error) MOVED 742 10.60.3.55:6379
127.0.0.1:6379>

127.0.0.1:6379> CLUSTER NODES
cbe713bf93c67adceed0d79e5b2d6a5a40b31625 10.60.3.53:6379@16379 master - 0 1533054504070 2 connected 5461-10922
2a65bcc6355cecb58df8d99dbee4da1fe4b5af70 10.60.3.55:6379@16379 master - 0 1533054502065 1 connected 0-5460
e7b5ff6bbb90cba775b1128f88de70c116ef18f6 10.60.3.54:6379@16379 myself,master - 0 1533054501000 3 connected 10923-16383
127.0.0.1:6379>

【问题讨论】:

    标签: redis


    【解决方案1】:

    我应该能够使用集群中的任何节点进行设置和获取。

    是和不是。正如@ItamarHaber 已经说过的,您只能在正确的节点上执行此操作。

    但是如果你想在使用redis-cli的同时自动去正确的节点,你可以使用-c开关。

    所以,而不是

    # redis-cli
    

    试试

    # redis-cli -c
    

    【讨论】:

      【解决方案2】:

      我应该能够使用集群中的任何节点进行设置和获取。

      您可以这样做,但您必须转到正确的节点来设置给定的密钥。

      我建议您使用 Redis 集群感知客户端和/或阅读有关集群如何工作,特别是数据如何分片的信息,地址为 https://redis.io/topics/cluster-tutorial

      【讨论】:

        猜你喜欢
        • 2020-11-25
        • 2017-05-07
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-06
        相关资源
        最近更新 更多