Redis Streamsの消費者グループとは何ですか?
消費者グループは、複数の消費者が同じデータストリームを読むことで協力できるようにすることにより、メッセージの複製の問題を解決します。 1.消費者グループは、各メッセージがグループ内の1人の消費者によって1回だけ処理されることを保証します。 2。消費者は、それが正常に処理されていることを確認でき、未確認のメッセージを再割り当てすることができます。 3。Xgroup Createを使用してグループを作成し、XreadGroupがメッセージを読み取り、Xack確認プロセスが完了します。 4.未確認のメッセージはPELリストに保存され、Xpendingを通じて表示するか、Xclaimに転送できます。
Redis Streamsの消費者グループは、複数の消費者を整理する方法であり、お互いのつま先を踏むことなく、同じストリームからデータを読むことができるように協力することができます。共有のTo Doリストからタスクの処理に取り組んでいるチームのように考えてください。各人(消費者)はタスクを取り、独立して作業します。
消費者グループはどのような問題を解決しますか?
消費者グループがなければ、同じストリームから複数の消費者が読んでいる場合、彼らはすべて同じメッセージを受け取ります。ワークロードを分割したい場合、それは理想的ではありません。3人が同時に同じタスクを実行していると想像してください。
消費者グループと:
- ストリーム内の各メッセージは、グループ内の1人の消費者によって1回だけ処理されます。
- 消費者は、成功したメッセージ処理を認めることができます。
- 何かがうまくいかない場合、または消費者がクラッシュした場合、未承認のメッセージを再割り当てすることができます。
これにより、消費者グループは、信頼性の高いスケーラブルなメッセージ処理システムの構築に最適です。
消費者グループは実際にどのように機能しますか?
消費者グループを使用する場合、理解する重要な概念がいくつかあります。
- ストリーム:データのソース。
- グループ:消費者の名前付きグループ。
- 消費者:グループの一部としてストリームからのメッセージを読み取る個々のプロセスまたはクライアント。
- 保留中のエントリリスト(PEL) :消費者にどのメッセージが配信されているが、まだ認められていないかを追跡します。
これが単純化されたフローです:
- グループの1人の消費者は、
XREADGROUP
を使用してメッセージを読み取ります。 - メッセージは進行中であるとマークされています。
- 消費者が処理を終了したら、
XACK
を送信して完了を確認します。 - メッセージが特定の時間内に認められていない場合、別の消費者に配信できます。
消費者グループの作成と使用方法
消費者グループから始めるには、最初にXGROUP CREATE
コマンドを使用してストリームに関連付けられたグループを作成する必要があります。方法は次のとおりです。
Xgroup Mystream MyGroup $を作成します
$
シンボルは、グループが最新のメッセージ以降の読み取りを開始することを意味します。既存のすべてのメッセージも処理する場合は、 $
を省略します。
グループが存在すると、消費者はメッセージを引っ張り始めることができます。
XreadGroup Group MyGroup Consumer1 Count 1 Streams Mystream>
これにより、Redisはmystream
からmygroup
グループのconsumer1
に最大1つの未処理のメッセージを放棄するように指示します。
処理後、消費者は次のことを送信する必要があります。
Xack MyStreamMyGroup <Message-Id>
これにより、保留中のリストからメッセージが削除され、Redisがそれが正常に処理されたことを伝えます。
注意すべきこと
消費者グループと協力するとき、いくつかのゴッチャスがあります:
- 承認されていないメッセージが確認されるまでPELにとどまります。
XPENDING
で確認できます。 - 消費者はクラッシュする可能性があり、メッセージは承認されていません。
XCLAIM
を使用して、これらのメッセージを別の消費者に移動します。 - 消費者名はユニークである必要はありませんが、誰が何をしているのかを追跡するのに役立ちます。
- メッセージ保持はユースケースに依存します - Redisはポリシーを設定しない限り、メッセージを自動的に削除しません。
たとえば、デバッグまたは回復している場合、これは便利です。
XペンディングマイストリームMyGroup
それは、消費者がそれらを持っているなどの詳細と、それらが保留中の期間などの詳細とともに、まだ認められるのを待っているメッセージの数を示しています。
したがって、消費者グループはほとんどの調整を処理しますが、承認を管理し、自分で再試行する必要があります。
基本的にそれだけです。
以上がRedis Streamsの消費者グループとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

スキャンコマンドを使用して、redisのパターンに一致するキーを安全に削除するために、unlinkと協力します。まず、scan0matchpatterncountを使用してバッチを使用してキー名を取得してブロックを避けます。次に、非同期に非難を使用してパフォーマンスを向上させます。 Redis-Cli-Scan-Pattern'Pattern '| Xargsredis-Cliunlinkを使用して、コマンドラインで効率的な削除を実現し、生産環境でのキーコマンドの使用を禁止することをお勧めします。

usebgSaveFormanualOrConfigureSavePointsforautomaticrdnapshotobackupredis;

DockerをホストにインストールせずにRedisを実行すると、Dockerrunコマンドを介してすぐに開始できます。構成ファイルをカスタマイズし、それらをマウントしてメモリポリシーやその他の設定を実装できます。ボリュームRedis-Dataに名前を付けることでデータを維持できます。 DockerComposeを使用して、開発環境の展開とメンテナンスを促進することをお勧めします。

最初にSpringDatareDis依存関係を追加し、次にConfigurationファイルにRedis接続情報を設定し、 @EnableCachingを介してキャッシュを有効にし、キャッシュアノテーションを使用し、最終的にRediStemplateまたはStringRedistEmplateを介してデータを操作して、キャッシュ、セッションストレージ、または高速データアクセスを実現します。

Redisのインストールは、APTまたはソースコードを使用して実行でき、APTはよりシンプルです。 2。パッケージインデックスを更新し、Redis-Serverをインストールします。 3.パワーオンセルフスタートを開始し、有効にします。 4. Redis-Clipingを使用してPongをテストします。 5.バインディング、パスワードなどを調整するオプションの構成ファイル。 6.サービスを再起動して、インストールを完了します。

useflushdbtoclearthecurrentdatabaseorflushallforalldatabase; bothsupportasync(background)orsync(blocking)Modes、withasyncpreferredinproductiontoavoidlatency。

永続性モデルを選択するには、アプリケーションの要件、負荷の動作、およびデータ型に基づいてトレードオフが必要です。一般的なモデルには、メモリのみ(高速ですが耐久性はありません)、ディスクストレージ(遅いが持続性)、ハイブリッドモード(速度と耐久性の両方)、および書き込み-PRE-LOG(高い持続性)が含まれます。キーデータを処理する場合は、WALまたはACIDデータベースを選択する必要があります。少量のデータ損失を許容できる場合は、メモリまたはハイブリッドモデルを選択できます。同時に、クラウド環境などの操作とメンテナンスの複雑さを考慮して、適切な統合ソリューションを選択する必要があります。スナップショットを永続的な保証として誤って扱う、クラッシュ回復テストを無視する、減少する同期頻度などを誤って扱うなど、一般的なエラーを避ける必要があります。つまり、優先順位を明確にし、例外シナリオテストを実行する鍵です。

HyperLoglogは、PFADDおよびPFCountコマンドを介してRedisでメモリ効率的で高速な一意のカウント推定法を提供します。 1. HyperLoglogは、データセット内の異なる要素の数を推定するために使用される確率アルゴリズムです。大規模なデータセットを処理するには、少量の固定メモリのみが必要です。独立した訪問者や高周波検索クエリやその他のシナリオを追跡するのに適しています。 2。PFADDは、HyperLoglogに要素を追加するために使用され、PFCountは1つ以上の構造で一意の要素推定値を返します。 3.意味のあるキー名を使用し、文字列値を直接追加し、複数のHLLをマージして繰り返し計算を回避することは、PFADDとPFCountを使用するための最良のプラクティスです。 4。Hyperlo
