Redis:フェイルオーバーの処理?
-
29-09-2019 - |
質問
Redisは、ビルトインの複製と驚くべき速度を備えた素晴らしい製品のようです。テストした後、2010年のMemcachedの代替品のように感じます。
ただし、通常はMemcachedを使用する場合、一貫したハッシュが使用されているため、プール内のサーバー全体にデータを均等に広げます。プール内のサーバーの1つがダウンしてアクセス可能になるのを停止すると、透過的に処理されており、失われたキーのみが再現され、プール内の残りの利用可能なサーバー全体に均等に配布されます。
一方、Redisにはシェルディングが組み込まれていますが、自動レプリケーションと呼ばれるもう1つの非常に興味深い機能もあります。そのおかげで、奴隷サーバーを利用してファンを襲った場合に使用するためにデータの可用性を大幅に増やすことができます。
しかし、私はまだ処理する良い解決策を見つけていません 奴隷としてのRedisサーバーのステータスを自動的に新しいマスターになるために変更する または、Redisでフェールオーバーを自動的に処理する他の方法で。
これはどうすればいいですか?これに対する適切なアプローチは何でしょうか?
解決
ただし、通常はMemcachedを使用する場合、一貫したハッシュが使用されているため、プール内のサーバー全体にデータを均等に広げます。プール内のサーバーの1つがダウンしてアクセス可能になるのを停止すると、透過的に処理されており、失われたキーのみが再現され、プール内の残りの利用可能なサーバー全体に均等に配布されます。
これはMemcachedが行うことではなく、クライアントライブラリはこのすべての魔法を行っています;)
ただし、Redisサーバーのステータスをスレーブとしての変更を処理するための適切なソリューションは、新しいマスターに自動的に、またはRedisでフェイルオーバーを自動的に処理する他の方法で、奴隷としてのステータスの変更を処理するための適切なソリューションを見つけていません。
使用 SlaveOfCommand 特性を変更します。自動フェールオーバーにはもう少しコーディングが必要になり、サーバーに接続し、接続を失い、時間Xの間再度確立できない場合は、1つのスレーブを選択して、他のすべてのサーバーのスレーブマスターステータスを変更して変更します。
更新(01. 2012年8月): 今があります Redis Sentinel, 、バージョン2.4.16以降の監視および自動フェールオーバーソリューション。