Position actuelle: Accueil> Derniers articles> Comment PHP écoute-t-il en permanence l'abonnement à message de Redis et gère-t-il les activités d'abonnement?

Comment PHP écoute-t-il en permanence l'abonnement à message de Redis et gère-t-il les activités d'abonnement?

gitbox 2025-06-06

Préface

Redis (district de dictionnaire distant) est une base de données en mémoire haute performance qui prend en charge de riches structures de données. Parmi eux, le mécanisme Publish / Sbonned (Pub / Sub) peut être utilisé pour la communication asynchrone entre les services. Cet article expliquera comment écouter en continu des messages dans le canal Redis en utilisant le langage PHP et gérer ces événements d'abonnement en temps réel.

Brève description du mécanisme de publication / abonnement redis

Le mode Publish / Sbonned de Redis permet aux clients de s'abonner à un ou plusieurs canaux, auxquels d'autres clients peuvent publier des messages. Une fois le message publié, tous les clients souscrivent au canal recevront immédiatement le contenu du message. Ce mécanisme est souvent utilisé dans des scénarios tels que la diffusion de messages, la notification en temps réel et les événements système.

Comment écouter le canal d'abonnement Redis à l'aide de PHP

Pour implémenter l'écoute de messages Redis dans PHP, vous devez installer l'extension PHP-Redis . La méthode d'installation est la suivante:

 sudo apt-get install php-redis

Pour les anciennes versions de PHP, vous pouvez l'installer manuellement:

Étape 1: Télécharger et dézip l'extension redis

 wget https://pecl.php.net/get/redis-5.3.4.tgz
tar -xzf redis-5.3.4.tgz

Étape 2: compiler et installer l'extension

 cd redis-5.3.4
phpize
./configure
make
sudo make install

Ensuite, ajoutez la configuration étendue dans php.ini :

 extension=redis.so

Étape 3: Créez une connexion Redis et écoutez le canal

Le code suivant montre comment se connecter à Redis et s'abonner à un canal à l'aide de PHP:

 $redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], function ($redis, $channel, $msg) {
    echo $channel . ": " . $msg . "\n";
});

Dans le code ci-dessus, la méthode abonnelle () est utilisée pour s'abonner au canal. Après avoir reçu le message, la fonction de rappel sera automatiquement exécutée pour réaliser le traitement en temps réel du message.

Logique de rappel pour gérer les événements d'abonnement Redis

La façon dont vous traitez les messages d'abonnement peut être personnalisée. Voici une fonction de traitement des messages simple:

 function handleMessage($redis, $channel, $message)
{
    // Traiter le message reçu
    echo "Received $message from channel $channel\n";
}

Abonnez-vous au canal à l'aide de fonctions personnalisées:

 $redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], 'handleMessage');

Ce code traite le contenu du message abonné en définissant une fonction de rappel et imprime la sortie. Vous pouvez également effectuer plus d'opérations en fonction de la logique métier, telle que la rédaction de bases de données, le déclenchement d'autres services, etc.

Résumer

Des mécanismes efficaces de notification d'événements et de diffusion de messages peuvent être réalisés grâce à PHP écoutant les messages de publication / souscript de Redis. Cet article présente le processus complet de l'extension d'installation à l'écriture de la logique d'écoute. Les développeurs peuvent développer de manière flexible la fonction de rappel d'abonnement en fonction de leur propre projet pour obtenir un traitement de messages en temps réel.