使用ioredis(https://github.com/luin/ioredis)连接到redis群集时,您只需要指定一个节点,例如。使用三个节点簇
127.0.0.1:7000127.0.0.1:7001127.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,或者仅适用于初始连接?
从我的实验中看来,这种情况确实有效,我的问题的答案是肯定的,但是我想检查一下这是预期的和支持的情况。
连接到群集时,ioredis会向群集的节点列表询问:7000,之后,Ioredis能够发现新节点并处理故障转移。因此,答案是YES是:7000 DIES 被获取节点列表。