Redisの哨兵モードとクラスタモードの主な機能
- 哨兵模式:
- 高可用性を保ち自動フェイルオーバーを実現するために、複数の Redis インスタンスを監視・管理する仕組みで、Sentinel ノードの集合を使用します。
- 哨戒ノードは定期的にRedisインスタンスのヘルス状態をチェックし、マスターが利用不可能になった場合に自動的に新しいマスターを選出し、他のスレーブは新しいマスターに切り替わります。
- 哨兵模式具有较低的复杂性,适用于中小规模的应用场景。
- クラスタモード
- クラスタモードはデータの断片化により複数の Redis ノードでデータを分散して保存し、データの水平拡張と負荷分散を実現します。
- クラスタモードはデータを 16384 スロットに分割し、各スロットは異なるノードに割り当てられ、各ノードはスロットの一部データの処理を担当します。
- クラスタモードは高いスループットと拡張性を持ち、大規模な高並列処理アプリケーションのシナリオに適しています。
共通点:
- 哨兵モードおよびクラスターモードはどちらもRedis の可用性とパフォーマンスを向上するように設計されています。
- 哨兵モードとクラスタモードはどちらも自動フェイルオーバーを実現し、高い可用性を確保できます。
- センティネルモードとクラスターモードはどちらも、水平方向にノード数を増やすことでシステムのスループットとパフォーマンスを向上できます。
違い:
- センチネルモードは中小規模のアプリケーションに、クラスタリングモードは大規模で同時にアクセス数の多いアプリケーションに適している。
- 哨兵モードは比較的簡単で、構成と管理が容易です。クラスターモードは比較的複雑で、データのシャードとノード間の通信を考慮する必要があります。
- 哨兵はレプリケーションのみを実現する一方、クラスタはシャードとロードバランシングを実現する。
- センチネルモードではマスターノードが停止するとしばらく利用できなくなりますが、クラスターモードであればサービスを継続的に提供できます。ただし、データは不完全または不整合になる可能性があります。