1

我有一个简单的 Redis 配置,运行 3 个服务器和 3 个 Sentinel(虽然是不同的实例)。这个配置几乎完美地运行,最终,我的 Master 失败了(常见的 Redis 问题,它无法完成后台保存)。

我的问题是,每当我尝试保存(或删除)某些内容时,都会出现错误:

ResponseError: MISCONF Redis is configured to save RDB snapshots, but
is currently not able to persist on disk. Commands that may modify the
data set are disabled. Please check Redis logs for details about the error.

我有什么办法可以让 Sentinel 调用“故障转移”强制选举新主人吗?通过 redis-cli 很容易,但我无法从我的 Python(2.7) 程序(使用 redis.py)中找到一种方法。

有任何想法吗?

4

1 回答 1

2

首先,您可能会用完磁盘空间,这会导致该错误。所以解决这个问题,它将不再需要故障转移。

也就是说,要在 Python 中执行此操作,我认为您需要使用“execute_command”并将哨兵命令和参数传递给它。所以像:

myclient.execute_command("SENTINEL failover", podname)

myclient您的连接对象在哪里,并且poundage是您在 Sentinel 中用于 pod 的名称,应该这样做。

于 2015-09-17T18:57:38.727 回答