Cet article présente principalement comment .net core utilise Redis pour publier et s'abonner. L'éditeur pense que c'est plutôt bien, je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil
Redis est une base de données en mémoire très puissante. Elle est généralement utilisée comme cache, mais elle peut être utilisée non seulement comme cache, comme le célèbre framework distribué dubbo. . Redis peut être utilisé comme centre d'enregistrement de services. Ensuite, nous présenterons la fonction de publication/abonnement du noyau .net à l'aide de Redis.
Redis publier et s'abonner
Redis publier et s'abonner (pub/sub) est un modèle de communication par message : l'expéditeur (pub) envoie le message et l'abonné (sub ) reçoit ses informations.
Les clients Redis peuvent s'abonner à n'importe quel nombre de chaînes.
La figure suivante montre la relation entre le canal canal1 et les trois clients abonnés à ce canal - client2, client5 et client1 :
Quand Quand un nouveau message est envoyé au canal canal1 via la commande PUBLISH, ce message sera envoyé aux trois clients qui y sont abonnés :
Utilisez la commande Redis
Tout d'abord, abonnez deux clients au canal de redismessage via la commande Subscribe redismessage :
Ensuite, ouvrez un client Redis et utilisez la commande "publish redismessage" Contenu du message "Publier le message
Utiliser le noyau .net pour implémenter
Le pilote de connexion que j'ai choisi ici est StackExchange.Redis, qui est requis ici Notez que le pilote de connexion ServiceStack.Redis a été progressivement commercialisé et que les versions 4.0 et supérieures ont des limitations, alors choisissez le StackExchange.Redis gratuit et facile à utiliser et installez-le à l'aide de nuget.
Créer un client d'abonnement
//创建连接 using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379")) { ISubscriber sub = redis.GetSubscriber(); //订阅名为 messages 的通道 sub.Subscribe("messages", (channel, message) => { //输出收到的消息 Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] {message}"); }); Console.WriteLine("已订阅 messages"); Console.ReadKey(); }
Créer un client de publication
//创建连接 using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379")) { ISubscriber sub = redis.GetSubscriber(); Console.WriteLine("请输入任意字符,输入exit退出"); string input; do { input = Console.ReadLine(); sub.Publish("messages", input); } while (input != "exit"); }
Un client de publication et deux clients abonnés sont exécutés ci-dessous :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!