Redis は、高パフォーマンスのオープンソース インメモリ データベースであり、主にデータ キャッシュ、メッセージ キュー、カウンター、ランキングなどのシナリオで使用されます。これらの実用的な機能に加えて、Redis は強力なパブリッシュ/サブスクライブ モデルもサポートしており、メッセージのパブリッシュ、メッセージのサブスクライブ、メッセージ メディエーションなどのシナリオに適用できます。次に、パブリッシュ/サブスクライブ モデルにおける Redis のアプリケーションを検討します。
パブリッシュ/サブスクライブ パターンの概念
パブリッシュ/サブスクライブ パターン (パブリッシュ/サブスクライブ パターン) は、一般的に使用されるメッセージ通信パターンです。これは、メッセージ パブリッシャーが次のことを行うことを可能にするメッセージ メディエーション メカニズムです。複数のリスナーに送信されます。このモデルでは、パブリッシャーとサブスクライバーの間に直接の接続はなく、メッセージ仲介者を介して通信します。
Redis はパブリッシュ/サブスクライブ モードを実装します
Redis では、SUBSCRIBE コマンドを使用して Redis サーバーにサブスクリプション メッセージを登録できます。新しいメッセージが公開されると、Redis サーバーはメッセージを購読しているすべてのクライアントに自動的に通知します。同様に、新しいメッセージは PUBLISH コマンドを通じて Redis サーバーにパブリッシュできます。これらのメッセージは、メッセージを購読しているすべてのクライアントに自動的にルーティングされます。
手順は次のとおりです:
最初に Redis クライアントを作成する必要があります。コードは次のとおりです。
import redis redis_client = redis.Redis(host='localhost', port=6379, db=0)
このうち、host は Redis サーバーの IP アドレスを表し、port はポート番号を表し、db は使用するデータベース番号を表します。
サブスクリプション メッセージを Redis サーバーに登録する方法は次のとおりです。
redis_pubsub = redis_client.pubsub() redis_pubsub.subscribe('channel_1') # 订阅名称为channel_1的消息
コードでは、pubsub( ) メソッドを使用して Redis パブリケーションを作成します。 - オブジェクトをサブスクライブし、subscribe() メソッドを使用して、channel_1 という名前のメッセージをサーバーに登録します。
メッセージを Redis サーバーに発行する方法は次のとおりです:
redis_client.publish('channel_1', 'Hello, world!')
コードでは、publish を使用します。 () メッセージ Hello, world !channel_1 に登録しているすべてのクライアントに送信するメソッド。
Redis メッセージをサブスクライブした後、Redis サーバーから受信したメッセージを処理する必要があります。メッセージの処理方法は次のとおりです:
for message in redis_pubsub.listen(): print(message)
コードでは、listen() メソッドを使用して、Redis サーバーから送信されたメッセージをリッスンします。Redis サーバーが新しいメッセージをクライアントに送信すると、それを印刷します。
アプリケーション シナリオ
パブリッシュ アンド サブスクライブ モデルを使用して、ニュース プッシュ、早期警告などのメッセージ通知機能を実装できます。 、など。たとえば、ニュース Web サイトは、新しくリリースされたニュースを Redis サーバーへのメッセージとして公開し、ニュースを購読しているすべてのユーザーに通知できます。これにより、ユーザーは最新のニュース情報をタイムリーに知ることができます。
以上がパブリッシュ/サブスクライブ モデルでの Redis のアプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。