Redisチームは、Redis 5.0の新しい Streams データ型を導入します。 Streamsは最初のビューからKafkaトピックのように見えるため、実際の使用例を見つけるのは奇妙に思えます。
streams intro では、Kafkaストリームと比較しています:
Kafka、RabbitMq、NATSのプロジェクトがあります。 Redisストリームを「pre kafka cache」として、また場合によってはKafka/NATSの代替として使用することを試みています。現在最も重要なポイントはレプリケーションです。
そして、キャップ戦略。 Redis Streamsの実際の「上限付きリソース」はメモリです。したがって、保存するアイテムの数や使用する上限付き戦略はそれほど重要ではありません。そのため、消費者が失敗するたびに、ピーク時のメモリ消費量またはキャップ付きのメッセージが失われます。
KafkaをRTBビッダーフロントエンドとして使用します。これは、最大120バイトのペイロードで1秒あたり最大1,100,000のメッセージを処理します。 Redisでは、書き込み時に約170 mb /秒のメモリ消費があり、512 gb RAMサーバーでは、約50分間のデータに対して「予約」を書き込みます。このため、処理システムがこの時間オフラインになるとクラッシュします。
現実世界でのRedis Streamsの使用について詳しく教えてください。自分で使用しようとする場合もありますか?または、Redis Streamsをそれほど多くないデータで使用できますか?
久しぶり。これはredis-dbメーリングリストに属する議論のように感じられますが、ユースケースは魅力的に聞こえます。
Redis Streamsは、Kafkaの置き換えを意図していないことに注意してください。類似点にもかかわらず、異なるプロパティと機能を提供します。レプリケーションの非同期性に関しては当然です。使用可能な量RAMを使用するには、クラスターの使用を検討し、期間ベースのキー名にストリームを分割する必要があります。