Introduction à la méthode de publication et d'abonnement à l'aide de Redis dans le noyau .net

巴扎黑
Libérer: 2017-09-20 09:32:56
original
2796 Les gens l'ont consulté

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();
}
Copier après la connexion

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");
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal