当主设备出现故障时,Redis群集未将从设备升级为主设备

当主设备出现故障时,Redis群集未将从设备升级为主设备,redis,Redis,我正在Windows 2012机箱上运行一个4节点REDIS群集 我的设置是1个主人和3个奴隶。当我通过服务组件结束主服务时,我的任何从属服务器都不会自动将自己提交给主服务器。我如何让奴隶们认识到主人的失败,并让他们在看到失败后立即提升。下面是我的Redis配置。这对于所有节点都是相同的配置文件,唯一的区别是每个节点的端口都已更改 端口30002 已启用群集是 集群配置文件nodes.conf 只有是 日志级别通知 日志文件“日志” 系统日志已启用是 syslog ident redis 最大内

我正在Windows 2012机箱上运行一个4节点REDIS群集

我的设置是1个主人和3个奴隶。当我通过服务组件结束主服务时,我的任何从属服务器都不会自动将自己提交给主服务器。我如何让奴隶们认识到主人的失败,并让他们在看到失败后立即提升。下面是我的Redis配置。这对于所有节点都是相同的配置文件,唯一的区别是每个节点的端口都已更改

端口30002
已启用群集是
集群配置文件nodes.conf
只有是
日志级别通知
日志文件“日志”
系统日志已启用是
syslog ident redis
最大内存200mb
maxmemory策略易失性ttl

编辑

我还需要提供哪些其他信息来帮助解决这个问题

编辑2

我的最终游戏是一个redis集群,我希望这个集群有1个主集群和3个从集群。我之所以希望在一个设置上有一个集群,其中有一个主集群和三个从集群,是因为我想避免安装REDIS Sentinel。我希望集群将奴隶提升为主人,而不是redis sentinel

我的安装过程如下

  • 创建4个文件夹(A、B、C、D)
  • 在每个文件夹中复制REDIS 64 msi for windows
  • 在文件夹A、B、C、D中放入一个配置文件,与上面的配置文件相同,但端口不同
  • 使用文件夹A、B、C、D安装redis服务
  • 启动所有服务
  • 对文件夹A、B、C、D执行Redis Meetup
  • 将文件夹A的复制添加到文件夹B、C、D
  • 将所有密钥分配给文件夹A上的redis实例
瞧,群集设置,文件夹A是A的主文件夹,B、C、D是A的从文件夹。现在唯一的问题是,当A下降时,没有从文件夹(B、C、D)自动升级

编辑

主机的redis.conf文件

端口30001
已启用群集是
集群配置文件nodes.conf
只有是
日志级别通知
日志文件“日志”
系统日志已启用是
syslog ident redis
最大内存200mb
maxmemory策略易失性ttl

运行前群集节点的输出
sc stop redismasteralpha

05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637832268 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master - 0 1478637837736 5 connected 0-16383
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 1 connected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637836644 5 connected
停止服务后

05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 3 connected
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 slave,fail 20be3e69195744aa379124d19a836650c72c23ba 1478637948956 1478637947808 5 disconnected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478638078833 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master,fail? - 1478638034799 1478638031628 5 connected 0-16383
无论我等待多长时间,
master,fail
状态都不会改变

停止服务后的群集信息

cluster_state:fail

cluster_slots_assigned:16384

cluster_slots_ok:0

cluster_slots_pfail:16384

cluster_slots_fail:0

cluster_known_nodes:4

cluster_size:1

cluster_current_epoch:5

cluster_my_epoch:5

cluster_stats_messages_sent:1075189

cluster_stats_messages_received:930887据我所知,redis cluster不能与少于3台主机一起工作

请看以下内容的说明:

请注意,按照预期工作的最小集群需要 至少包含三个主节点。对于您的第一次测试,它是 强烈建议启动一个具有三个主节点和 三个奴隶


Redis群集至少需要3个主节点,否则无法正常工作。

添加从属节点取决于用户,但如果没有3个主节点,则无法进一步移动。 要在windows中设置集群,您可以按照下面提到的链接进行操作,我也测试过这个链接


是否要设置具有4个节点的节点?还是只有一个Redis实例和3个从机?看起来你想要后者,但是你正在设置前者。你能帮我做几件事吗?#1我们能检查一下redis.conf文件以查看从属优先级吗#2如何杀死主节点#3在redis cli中,CLUSTER INFO和CLUSTER NODES的输出是什么?@LeftyGBalogh updatedI重新安装了3个主节点和3个从节点,节点的响应与我想要的一样。除了群集教程中建议的其他文档之外,还有其他文档说明,群集故障转移在X主机以下的情况下无法工作吗?没有,我没有找到任何其他官方文档说明最低限度。如果在2天内没有人能找到该文档,我将向您提供奖励。确定:)。这两个问题是相关的:而且。忘了我之前问过这个问题