1

使用 ioredis ( https://github.com/luin/ioredis ) 连接到 redis 集群时,您只需要指定一个节点,例如使用三节点集群

127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

您可以使用简单的连接:

new Redis.Cluster([{
  port: 7000,
  host: '127.0.0.1'
}])

如果 :7000 节点死亡并且您将其替换为不同的节点,则执行以下操作:

redis-trib.rb call 127.0.0.1:7001 cluster forget [node_id of :7000]
redis-trib.rb add-node 127.0.0.1:7003 127.0.0.1:7001
redis-trib.rb fix 127.0.0.1:7001

ioredis 是否能够继续工作(接受来自 :7000 的数据丢失),是否需要再次联系 127.0.0.1:7000 还是仅用于初始连接?

从我的实验看来,这种情况确实有效,我的问题的答案是肯定的,但我想检查这是预期的和受支持的情况。

4

1 回答 1

3

当连接到集群时,ioredis 会向 :7000 询问集群的节点列表,然后 ioredis 能够发现新节点并处理故障转移。因此,如果 :7000 在获取节点列表死亡,答案是肯定的。

于 2017-10-05T13:16:15.007 回答