Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
故障后如何重新启动redis群集节点_Redis - Fatal编程技术网

故障后如何重新启动redis群集节点

故障后如何重新启动redis群集节点,redis,Redis,我正在按照文档使用Redis群集进行试验。我有点困惑 初始配置 35edd8052caf37149b4f9cc800fcd2ba60018ab5 127.0.0.1:30005@40005 slave bd76f831d34ed265a964e5f5caff2c0807c96b85 0 1524390407263 5 connected d9e92c606f1fddebf84bbbc6f76485e418647683 127.0.0.1:30003@40003 master - 0 152439

我正在按照文档使用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提升为主)

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

我正在关注这份文件。
. (这里有一句话是“我重新启动了崩溃的实例,以便它作为从机重新加入集群”,但没有提到如何做到这一点?

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

cd 30001
../redis-server redis.conf

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

../redis-server redis.conf
其中redis.conf包含该节点的配置。 比如说

  • 端口7000
  • 已启用群集是
  • 集群配置文件nodes.conf
  • 群集节点超时5000
  • 只有是
redis集群创建如下:

./redis-trib.rb create --replicas 1 host1:port1 host2:port2 host3:port3 host4:port4 host5:port5 host6:port6
ruby文件将在其中随机创建主节点和从节点,并创建一个nodes.conf文件(如redis.conf文件中所述),其中包含节点信息


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

,假设您遵循教程,并使用
创建集群
命令创建集群,即

# pwd: redis/utils/create-cluster
./create-cluster start
./create-cluster create
要恢复失败的节点,请使用重新启动它

./create-cluster start
这将启动故障节点。当前正在运行的节点不会受到影响


我知道启动redis必须这样做,但我已经使用redis-trib.rb创建了集群。在这种情况下,redis.conf文件的位置是什么。现在你的答案更一般。我的问题是只有一台redis服务器停止或失败,所以我想重新启动它。nodes.conf文件是在哪里创建的。如果您遵循了redis cluster教程,那么nodes.conf将在您计算机中名为ie 30001的端口内创建case@dotnetstep如果你对答案满意。请接受它以帮助社区。我没有回答这个问题。
./create-cluster start