1

3 つのサーバーと 3 つの Sentinel (ただし、異なるインスタンス) で実行されている単純な Redis 構成があります。この構成はほとんど問題なく実行されており、最終的にはマスターが失敗します (バックグラウンド保存を完了できなかった一般的な 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)

wheremyclientは接続オブジェクトでありpoundage、Sentinel でポッドに使用する名前です。それを行う必要があります。

于 2015-09-17T18:57:38.727 に答える