首页 文章

如何在失败后重新启动redis群集节点

提问于
浏览
0

我正按照文档试验Redis Cluster . 我有一点困惑 .

初始配置

35edd8052caf37149b4f9cc800fcd2ba60018ab5 127.0.0.1:30005@40005 slave bd76f831d34ed265a964e5f5caff2c0807c96b85 0 1524390407263 5 connected
d9e92c606f1fddebf84bbbc6f76485e418647683 127.0.0.1:30003@40003 master - 0 1524390407263 8 connected 10923-16383
edf62838d10b99018a0ecb7698c1b9ac52aa3bbb 127.0.0.1:30002@40002 myself,master - 0 1524390407000 2 connected 5461-10922
bd76f831d34ed265a964e5f5caff2c0807c96b85 127.0.0.1:30001@40001 master - 0 1524390407062 1 connected 0-5460
55a72ea5b4d0a77e2b18ca2b3f74b20d3550244c 127.0.0.1:30006@40006 slave edf62838d10b99018a0ecb7698c1b9ac52aa3bbb 0 1524390407562 6 connected
26788ce4523c95a93bd63907c1c75827fe61476a 127.0.0.1:30004@40004 slave d9e92c606f1fddebf84bbbc6f76485e418647683 0 1524390407263 8 connected

现在测试如果任何主服务器失败,我使用以下命令手动失败 .

redis-cli -p 30001 debug segfault

现在配置看起来像这样 . (30001失败,30005升为硕士)

35edd8052caf37149b4f9cc800fcd2ba60018ab5 127.0.0.1:30005@40005 master - 0 1524390694964 9 connected 0-5460
d9e92c606f1fddebf84bbbc6f76485e418647683 127.0.0.1:30003@40003 master - 0 1524390695064 8 connected 10923-16383
edf62838d10b99018a0ecb7698c1b9ac52aa3bbb 127.0.0.1:30002@40002 myself,master - 0 1524390694000 2 connected 5461-10922
bd76f831d34ed265a964e5f5caff2c0807c96b85 127.0.0.1:30001@40001 master,fail - 1524390636966 1524390636165 1 disconnected
55a72ea5b4d0a77e2b18ca2b3f74b20d3550244c 127.0.0.1:30006@40006 slave edf62838d10b99018a0ecb7698c1b9ac52aa3bbb 0 1524390694964 6 connected
26788ce4523c95a93bd63907c1c75827fe61476a 127.0.0.1:30004@40004 slave d9e92c606f1fddebf84bbbc6f76485e418647683 0 1524390695164 8 connected

如何再次将30001添加到群集中?另外,我如何才能启动该节点?

我正在关注此文件 . https://redis.io/topics/cluster-tutorial . (这里有一个声明"I restarted the crashed instance so that it rejoins the cluster as a slave"但没有提到怎么做?)

2 回答

  • 3

    使用redis-trib.rb创建集群需要运行Redis实例,我们应该开始使用自定义配置文件

    ../redis-server redis.conf
    

    其中redis.conf包含该节点的配置 . 例如

    • 端口7000

    • cluster-enabled yes

    • cluster-config-file nodes.conf

    • cluster-node-timeout 5000

    • 附带是的

    redis集群创建如下,

    ./redis-trib.rb create --replicas 1 host1:port1 host2:port2 host3:port3 host4:port4 host5:port5 host6:port6
    

    ruby文件将随机创建其中的master和slave,并创建一个nodes.conf文件(如redis.conf文件中所述),它将具有节点信息

    当您使用../redis-server redis.conf启动服务器时,它将从nodes.conf中选择节点信息,如id,其主/从,并再次连接到集群

  • 3

    您可以使用与之前启动它相同的命令在所需端口上重新启动redis实例,即

    cd 30001
    ../redis-server redis.conf
    

相关问题