Redis (Remote Dictionary Server) ist eine Hochleistungs-In-Memory-Datenbank, die reichhaltige Datenstrukturen unterstützt. Unter ihnen kann der Mechanismus zum Veröffentlichung/Abonnement (PUB/Sub) für die asynchrone Kommunikation zwischen Diensten verwendet werden. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP -Sprache kontinuierliche Nachrichten im Redis -Kanal anhören und diese Abonnementereignisse in Echtzeit übernehmen können.
Mit Redis 'Publish/Abonnement -Modus können Clients einen oder mehrere Kanäle abonnieren, auf die andere Clients Nachrichten veröffentlichen können. Sobald die Nachricht veröffentlicht wurde, erhalten alle Clients, die den Kanal abonnieren, den Nachrichteninhalt sofort. Dieser Mechanismus wird häufig in Szenarien wie Nachrichtensendung, Echtzeitbenachrichtigung und Systemereignissen verwendet.
Um Redis Message-Hören in PHP zu implementieren, müssen Sie die PHP-Redis- Erweiterung installieren. Die Installationsmethode lautet wie folgt:
sudo apt-get install php-redis
Für ältere Versionen von PHP können Sie es manuell installieren:
wget https://pecl.php.net/get/redis-5.3.4.tgz
tar -xzf redis-5.3.4.tgz
cd redis-5.3.4
phpize
./configure
make
sudo make install
Fügen Sie als nächstes die erweiterte Konfiguration in Php.ini hinzu:
extension=redis.so
Der folgende Code zeigt, wie Sie mit PHP eine Verbindung zu Redis herstellen und einen Kanal abonnieren:
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], function ($redis, $channel, $msg) {
echo $channel . ": " . $msg . "\n";
});
Im obigen Code wird die Methode subscribe () verwendet, um den Kanal zu abonnieren. Nach Empfang der Nachricht wird die Rückruffunktion automatisch ausgeführt, um die Echtzeitverarbeitung der Nachricht zu erkennen.
Die Art und Weise, wie Sie Abonnementnachrichten verarbeiten, kann angepasst werden. Hier ist eine einfache Meldungsverarbeitungsfunktion:
function handleMessage($redis, $channel, $message)
{
// Verarbeiten Sie die empfangene Nachricht
echo "Received $message from channel $channel\n";
}
Abonnieren Sie den Kanal mit benutzerdefinierten Funktionen:
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], 'handleMessage');
Dieser Code verarbeitet den abonnierten Nachrichteninhalt, indem er eine Rückruffunktion definiert und die Ausgabe druckt. Sie können auch mehr Vorgänge basierend auf der Geschäftslogik ausführen, z. B. das Schreiben von Datenbank, andere Dienste usw. auszulösen.
Effiziente Mechanismen für Ereignisbenachrichtigungen und Nachrichtensendungen können durch PHP -Hören von Redis -Veröffentlichung/Abonnementnachrichten erreicht werden. In diesem Artikel wird der vollständige Vorgang von der Installationserweiterung bis zum Schreiben von Hörlogik eingeführt. Entwickler können die Abonnement-Callback-Funktion flexibel erweitern, um die Echtzeit-Nachrichtenverarbeitung zu erreichen.