ホームページ  >  記事  >  データベース  >  RedisとKafkaの違い

RedisとKafkaの違い

(*-*)浩
(*-*)浩オリジナル
2019-06-18 09:59:319398ブラウズ

Kafka と Redis PUB/SUB の最大の違いは、Kafka が完全なシステムであるのに対し、Redis PUB/SUB は単なるスイート (ユーティリティ) であるということです。結局のところ、Redis に罪はないのですが、その主な機能は PUB ではありません/サブ。

RedisとKafkaの違い

#redis メッセージ プッシュ (分散パブリッシュ/サブスクライブに基づく) は、主に、高いリアルタイム パフォーマンスを備えたメッセージ プッシュに使用されます。 . 信頼性の保証。 (推奨学習:

Redis ビデオ チュートリアル ) その他の mq および kafka は信頼性が保証されていますが、多少の遅延が発生します (非リアルタイム システムでは遅延が保証されません)。 Redis-pub/sub は電源を切るとクリアされますが、redis-list をメッセージプッシュとして使用すると永続性はありますが、強度が弱すぎて完全に信頼できるわけではなく、失われることはありません。

別の点として、異なるトピックを表すことに加えて、redis パブリッシュとサブスクライブはグループ化をサポートしていません。たとえば、Kafka が何かをパブリッシュするとき、複数のサブスクライバーをグループ化でき、同じグループ内の 1 つのサブスクライバーのみがメッセージ: 負荷分散に使用できるメッセージ。

Redis は、まず第一に、インメモリ データベースです。これが提供する PUB/SUB 機能は、メッセージを (チャネルに基づいて) メモリに保存するため、メッセージの永続性要件が高くなく、バックエンドアプリケーション 高い購買力がある場合は、Redis PUB/SUB を使用することがより適切な使用シナリオです。たとえば、公式 Web サイトではオンライン チャット ルームの例が提供されています。チャネルは IRC のサーバーであるため、IRC をシミュレートします。ユーザーは接続を開始し、チャネルにメッセージを公開し、他のユーザーからメッセージを受信します。永続性に対するこれらの要件はそれほど高くなく、Redis PUB/SUB を使用するだけで十分です。


Kafka は、高スループットの分散送信ログを提供する完全なシステムです (Kafka Connect と Kafka Streams の提供により、現在の Kafka 公式 Web サイトは分散 A ストリーミング処理に変更されました)プラットフォームでは、Kafka の野心もここで見ることができます:-)。 p2p メッセージ キューに加えて、もちろん PUB/SUB メッセージ モデルも提供します。さらに、Kafka はデフォルトでメッセージの永続性を提供し、(少なくともほとんどの場合) メッセージが失われないようにします。さらに、消費メタデータは消費者側に保存されるため、消費者には消費に関する大きな自由度が与えられます。コンシューマーは、メッセージを順番に消費することも、以前に処理されたメッセージを再消費することもできます。これらは、Redis PUB/SUB では実行できないことです。


Redis PUB/SUB 使用シナリオ:

1. メッセージ永続性要件は高くありません

2. スループット要件は高くありません高い
3. データ損失を許容できる
4. データ量は大きくない

Kafkaの使用シナリオ:

上記以外の他のシナリオ: )

1. 高信頼性
2. 高スループット
3. 高耐久性
4. 多様な消費処理モデル

Redis 関連の技術記事の詳細については、こちらをご覧ください

Redisデータベース活用入門チュートリアル 学べるコラム!

以上がRedisとKafkaの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。