我正按照文档试验Redis群集。我有一点混乱。
初始配置
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。 (这里有一条声明“我重新启动崩溃的实例,以便它作为奴隶重新加入群集”,但没有提到如何做到这一点?)
答案 0 :(得分:3)
您可以使用与之前启动它相同的命令重新启动所需端口上的redis实例,即
cd 30001
../redis-server redis.conf
答案 1 :(得分:3)
使用redis-trib.rb创建集群需要运行Redis实例,我们应该开始使用自定义配置文件
../redis-server redis.conf
其中redis.conf包含该节点的配置。 例如
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,其主/从,并再次连接到集群
答案 2 :(得分:1)
假设您已按照本教程进行操作,并使用create-cluster
命令创建了集群,即
# pwd: redis/utils/create-cluster
./create-cluster start
./create-cluster create
要恢复发生故障的节点,请使用再次启动
./create-cluster start
这将启动发生故障的节点。当前正在运行的节点不会受到影响。
https://github.com/antirez/redis/blob/unstable/utils/create-cluster/create-cluster#L25