Redis是一个机能异常强劲的内存数据库,它平常是作为缓存来运用,然则他不单单议能够用来作为缓存,比方有名的分布式框架dubbo就能够用Redis来做效劳注册中间。接下来引见一下.net core 运用Redis的宣布/定阅功用。
Redis 宣布定阅
Redis 宣布定阅(pub/sub)是一种音讯通讯形式:发送者(pub)发送音讯,定阅者(sub)吸收音讯。
Redis 客户端能够定阅恣意数目的通道。
下图展现了频道 channel1 , 以及定阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关联:
当有新音讯经由过程 PUBLISH 敕令发送给频道 channel1 时, 这个音讯就会被发送给定阅它的三个客户端:
运用Redis敕令
起首,经由过程subscribe redismessage敕令使两个客户端定阅redismessage通道:
然后再翻开一个Redis客户端,运用敕令publish redismessage "音讯内容"宣布音讯
运用.net core 完成
这里我挑选的衔接驱动为 StackExchange.Redis,这里须要注重的是 ServiceStack.Redis衔接驱动已逐步商业化,4.0及以上版本都具有限定,所以挑选的免费且好用的StackExchange.Redis,运用nuget装置即可。
竖立定阅客户端
//建立衔接 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(); }
竖立宣布客户端
//建立衔接 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"); }
下面运行了一个宣布客户端,两个定阅客户端:
以上就是.NET中core怎样应用Redis宣布定阅的实例剖析的细致内容,更多请关注ki4网别的相干文章!