In diesem Artikel wird hauptsächlich vorgestellt, wie .net Core Redis zum Veröffentlichen und Abonnieren verwendet. Der Herausgeber ist der Meinung, dass er jetzt mit Ihnen geteilt wird und als Referenz dient. Folgen wir dem Editor, um einen Blick darauf zu werfen
Redis ist eine sehr leistungsstarke In-Memory-Datenbank. Sie wird im Allgemeinen als Cache verwendet, kann aber nicht nur als Cache verwendet werden, wie zum Beispiel das berühmte verteilte Framework Dubbo . Redis kann als Service-Registrierungscenter verwendet werden. Als Nächstes stellen wir die Publish/Subscribe-Funktion von .net Core mithilfe von Redis vor.
Redis veröffentlichen und abonnieren
Redis veröffentlichen und abonnieren (pub/sub) ist ein Nachrichtenkommunikationsmodell: Der Absender (pub) sendet die Nachricht und der Abonnent (sub ) erhält seine Informationen.
Redis-Kunden können eine beliebige Anzahl von Kanälen abonnieren.
Die folgende Abbildung zeigt die Beziehung zwischen Kanal Kanal1 und den drei Clients, die diesen Kanal abonnieren – Client2, Client5 und Client1:
Wann Wann ein neuer Wird die Nachricht über den PUBLISH-Befehl an Kanal Kanal1 gesendet, wird diese Nachricht an die drei Clients gesendet, die sie abonnieren:
Verwenden Sie den Redis-Befehl
Abonnieren Sie zunächst zwei Clients über den Befehl „subscribe redismessage“ für den Redismessage-Kanal:
Öffnen Sie dann einen Redis-Client und verwenden Sie den Befehl „Redismessage veröffentlichen“ „Nachrichteninhalt“. „Nachricht veröffentlichen
.net Core zum Implementieren verwenden
Der Verbindungstreiber, den ich hier ausgewählt habe, ist StackExchange.Redis, der erforderlich ist Beachten Sie hier, dass der ServiceStack.Redis-Verbindungstreiber nach und nach kommerzialisiert wurde und die Versionen 4.0 und höher Einschränkungen aufweisen. Wählen Sie daher den kostenlosen und benutzerfreundlichen StackExchange.Redis und installieren Sie ihn mit Nuget.
Erstellen Sie einen Abonnement-Client
//创建连接 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(); }
Erstellen Sie einen Veröffentlichungs-Client
//创建连接 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"); }
Ein Veröffentlichungs-Client und zwei Abonnement-Clients werden unten ausgeführt:
Das obige ist der detaillierte Inhalt vonBeispielanalyse, wie Core Redis Publish und Subscribe in .NET verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!