Queue
は特別な線形テーブルです。特別なのは、テーブルのフロントエンドでのみ削除操作が許可されることです。キューはスタックと同様に、操作が制限された線形テーブルです。挿入操作を実行する端はキューの末尾と呼ばれ、削除操作を実行する端はキューの先頭と呼ばれます。
Message Queue
は、送信中のメッセージを保存するコンテナです。 (redis チュートリアル)
redis のメッセージ キュー
redis では、組み込みのパブリッシュおよびサブスクライブ コマンドを使用して、「メッセージ」を完成させることができます。プッシュ機能とメッセージプル機能はメッセージキューを実装します。ただし、この方法の欠点の 1 つは、消費者が同時にオンラインである必要があり、そうでないと消費が見逃されてしまうことです。
メッセージ キューは通常、メッセージ ストレージ専用の独立したクラスターを使用し、メモリまたはディスクに直接保存できます。たとえば、一般的なものとしては、RabbitMQ、kafka、rocketMQ、ActiveMQ、zeromq などがあります。これらは異なる特性を持ち、さまざまな実装を採用しており、さまざまなシナリオでのメッセージ タスクの分散に適しています。ただし、その本質的な役割は、前述の単一インスタンス環境における Java の「キュー」と同じであり、メッセージの送信中にメッセージを保存するコンテナです。それは「分散」環境に変換されただけです。
redis の List (本質的には二重リンクリスト) や zset (順序付きセット) を「メッセージキュー」のコンテナとして利用することができ、少しの加工で可用性の高い「メッセージキュー」を実現できます。 redis を使用して実装された「軽量」「メッセージ キュー」には、次の 3 つの大きな利点があります:
1. 現在、redis は主要なシステムで広く使用されており、他のサードパーティのフレームワークを導入する必要はありません。再びAPI。
2. また、redis はメモリ ストレージをベースにしており、プロデューサーとコンシューマーのアクセス速度は非常に高速です。
3. Redis クラスターの容量は、インスタンスを追加することで拡張できます。
上記の 3 つの要件を満たしていれば、単純な「メッセージ キュー」を実装できます。
以上がRedis メッセージキューを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。