Plus qu'une simple base de données, Redis peut également agir comme un courtier de messages prenant en charge les opérations de publication et d'abonnement (éditeurs et abonnés). Ce blog fournira un bref aperçu des fonctionnalités Pub/Sub de Redis en utilisant Navicat for Redis.
À propos du modèle de publication/abonnement
Pub/Sub est un modèle selon lequel un expéditeur (diffuseur) ne peut pas envoyer de messages à des destinataires spécifiques (abonnés). Au lieu de cela, les messages publiés sont envoyés sur les chaînes, sans aucune connaissance du nombre d'abonnés (le cas échéant). Les abonnés s'inscrivent ensuite sur une ou plusieurs chaînes afin de recevoir uniquement les messages qui les intéressent. Cette distinction entre éditeurs et abonnés permet une plus grande évolutivité et facilite la gestion du flux d’informations dans un système complexe.
Redis Pub/Sub fournit une solution de messagerie légère, rapide et évolutive qui peut être utilisée à diverses fins, telles que des notifications en temps réel, l'envoi de messages entre micro-services ou la communication entre différentes parties d'une même application.
Livraison de messages dans Redis
Redis utilise un système de livraison de messages « au plus une fois ». Comme son nom l'indique, cela signifie qu'un message ne sera délivré qu'une seule fois, voire pas du tout… Ainsi, une fois le message envoyé par le serveur Redis, il n'est plus jamais envoyé. Si l'abonné ne parvient pas à recevoir le message (par exemple, en raison d'une erreur ou d'une panne de réseau), le message est définitivement perdu. Tout comme si vous écoutiez votre émission préférée à la radio, si vous la manquez, votre chance est passée. Si votre application nécessite des garanties de livraison plus solides, vous devez plutôt utiliser Redis Streams.
De plus, Pub/Sub n'a aucun rapport avec l'espace clé. Cela signifie qu'un message publié sur la base de données 10 sera entendu par un abonné sur la base de données 1. Si vous avez besoin d'une portée, Redis suggère de préfixer le nom du canal (c'est-à-dire prod_mychannel, test_mychannel).
Faire une publication avec Navicat for Redis
Dans Navicat for Redis (ou Navicat Premium), nous pouvons accéder à l'écran Pub/Sub via le bouton Pub/Sub de la barre d'outils principale. À partir de là, nous pouvons publier des messages à l'aide du volet de publication :
Dans Redis, les canaux ne sont pas explicitement créés par l'utilisateur. Les chaînes sont créées automatiquement lorsque le premier message est publié ou qu'un client s'y abonne. Pour le démontrer, nous allons ouvrir deux connexions avec le même serveur Redis. Chaque connexion agira comme un client différent. La première connexion s'abonnera au "test_channel", tandis que la seconde publiera un message sur ce même canal. Ce faisant, nous nous attendons à ce que notre message soit transmis à l'abonné dès sa publication.
Pour s'abonner à une chaîne dans Navicat, il suffit de cliquer sur le bouton S'abonner. Cela ouvrira la boîte de dialogue S'abonner:
Là, nous saisissons le nom de la chaîne - "test_channel" - puis cliquons sur Subscribe. Une fois la boîte de dialogue fermée, la chaîne apparaîtra dans la liste des chaînes, avec un enregistrement de l'action d'abonnement :
Pour publier un message dans Navicat, nous le sélectionnerons dans la liste des canaux (c'est la valeur par défaut puisque nous n'avons qu'un seul canal à ce stade), saisirons notre message dans le champ Texte du message et cliquerions sur Publier. À ce stade, nous devrions voir une notification indiquant que le message a été reçu :
Conclusion
Dans ce blog, nous avons exploré les fonctionnalités Pub/Sub de Redis à l'aide de Navicat for Redis.
Vous souhaitez essayer Navicat for Redis. Télécharger le ici . La version d'essai est entièrement fonctionnelle et gratuite pendant 14 jours.