Redisは、文字列、ハッシュ、リスト、コレクションなどの複数のデータ構造をサポートするオープンソースメモリデータ構造ストレージシステムです。メッセージサブスクリプションと公開機能も提供し、クライアントが指定されたチャネルを購読し、新しいメッセージがチャネルで公開されたときに通知を受信できます。この記事では、PHPでRedisメッセージのサブスクリプションと継続的なリスニングを実装する方法を紹介します。
Redis拡張機能の使用を開始する前に、最初にインストールする必要があります。 PECLコマンドを介してインストールし、次のコマンドを実行できます。
システムがPECLをインストールしていない場合は、次のコマンドを介してインストールできます。
Redis拡張機能パッケージをインストールした後、次のステップはRedisサーバーに接続することです。 RedisクラスのConnectメソッドを使用して、接続を確立します。コードの例は次のとおりです。
上記のコードでは、Connectメソッドの最初のパラメーターはRedisサーバーのIPアドレスであり、2番目のパラメーターはポート番号です。接続が成功した後、プログラムは「Redis接続」メッセージを出力します。
Redisへの接続に正常に接続した後、メッセージチャネルにサブスクライブしてメッセージを処理することができます。 Redisは、サブスクライブおよびsubscribeメソッドをサブスクライブします。
購読メソッドは、以下に示すように、1つ以上の指定されたチャネルにサブスクライブします。
上記のコードでは、サブスクライブメソッドの最初のパラメーターはチャネル配列であり、2番目のパラメーターはコールバック関数です。コールバック関数は、メッセージを受信した後に実行されます。
psubscribeメソッドは、ワイルドカード文字の使用をサポートして複数のチャネルを購読します。例は次のとおりです。
上記のコードは、「チャネル」から始まるすべてのチャネルを購読することを意味します。
プログラムを継続的にメッセージをリアルタイムでリアルタイムで処理させるために、whileループを使用してメッセージを継続的にリッスンすることができます。この関数を実装するコードは次のとおりです。
このコードでは、whileループは、redis接続がpingメソッドを介して正常であるかどうかを継続的に検出し、1秒に1回スリープします。
Redisメッセージサブスクリプションと継続的なリスニングを実装するための完全なPHPコードの例を次に示します。
この記事を通して、PHPでRedis拡張機能パッケージを使用してサブスクリプションを継続的にリッスンし、Redisメッセージを処理する方法を学びました。メソッドをメッセージチャネルに購読およびpsubscribeし、hireループを使用してメッセージを継続的にリッスンする方法について説明し、受信したすべてのメッセージがリアルタイムで処理されるようにします。