当前位置:首页 > 日记 > 正文

.net core如何使用Redis发布订阅

.net core如何使用Redis发布订阅

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");}

下面运行了一个发布客户端,两个订阅客户端:

Demo下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

PS简单绘制一个轻写实的油漆刷icon

PS简单绘制一个轻写实的油漆刷icon

图标,教程,绘制,简单,油漆刷,效果图:主要过程:12 阅读全文教程结束,以上就是PS简单绘制一个轻写实的油漆刷icon图标教程的全部内容,希望大家喜欢!相关教程推荐:photoshop中短信icon图标按钮制作教程Photoshop设计简洁风格的线性ICON图标Photosho…

photoshop简单制作清爽的冰冻文字

photoshop简单制作清爽的冰冻文字

文字,冰冻,清爽,简单,电脑软件,photoshop怎么制作冰冻文字?方法很简单,推荐过来,快来学习一下吧。步骤:1、点击“文件”-‘’打开”,打开图片。2、选择“横排文字工具”,字体为方正新舒体繁体,设置大小,选择平…

jQuery实现的事件绑定功能基本示例

jQuery实现的事件绑定功能基本示例

事件绑定,示例,功能,电脑软件,jQuery,本文实例讲述了jQuery实现的事件绑定功能。分享给大家供大家参考,具体如下:HTML正文:用户名:<input type="text" value="邮箱/用户名/手机号" id="login"/><br>密 码:<input type="password" id="…

JavaScript实现链表插入排序和链表

JavaScript实现链表插入排序和链表

链表,归并排序,插入排序,电脑软件,JavaScript,本篇文章详细的介绍了JavaScript实现链表插入排序和链表归并排序,链表的归并排序就是对每个部分都进行归并排序,然后合并在一起。1.链表1.1链表的存储表示//链表的存储表示typedef int ElemType;…

fireworks怎么设计一个立体的炫光

fireworks怎么设计一个立体的炫光

球体,电脑软件,fireworks,fireworks怎么设计一个立体的炫光球体?下面我们就来看看详细的教程,很简单,新手也可以进来学习一下。软件名称:fireworks8简体中文版 (含序列号)软件大小:88MB更新时间:2014-09-091、画一个圆。启动Fireworks-> 将背景…

PPT2016如何给文字的偏旁部首设置

PPT2016如何给文字的偏旁部首设置

设置,文字,偏旁,部首,颜色,  在PPT的使用过程中,如果想让别人很好的分辨出文字的偏旁部首,我们可以将文字的偏旁部首设置成另外一个颜色。以下是小编为您带来的关于PPT2016给文字的偏旁部首设置颜色,希望对您有所帮助。PPT2016给文字的偏旁…

PS怎么制作一个聚光灯投影的效果?

PS怎么制作一个聚光灯投影的效果?

投影,聚光灯,效果,电脑软件,PS,上一次分享了PS如何做节日彩纸效果,这次和大家一起分享用PS如何制作投影灯的效果。由于内容比较多,大家可以分两次阅读哦(即使你没有PS基础,只有有点耐心也可以学会哦)软件名称:Adobe Photoshop 8.0 中文完整绿色破…

word2010如何批量打印证书

word2010如何批量打印证书

证书,批量,电脑软件,  近日对学生进行水平测试,要对成绩优秀的100名学生进行奖励,颁发荣誉证书。利用word的邮件合并功能,可批量打印每个学生的证书,而不用手工填写姓名。那么下面就由小编给大家分享下word2010批量打印证书的技巧,希望能帮助…

IE8/IE9下Ajax缓存问题

IE8/IE9下Ajax缓存问题

缓存,电脑软件,Ajax,ajax简介AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。通…

web前端超出两行用省略号表示的实

web前端超出两行用省略号表示的实

方法,省略号,两行,电脑软件,web,web前端超出两行用省略号表示的实现方法HTML<span class="GW_bod0112211"> 吐鲁番特级无炳黑加仑葡萄干500g包邮无籽吐鲁番特级无炳黑加仑葡萄干500g包邮无籽吐鲁番特级无炳黑加仑葡萄干500g包邮无籽,超大…

cdr怎么反选? Coreldraw反选的技巧

cdr怎么反选? Coreldraw反选的技巧

技巧,电脑软件,cdr,Coreldraw,Coreldraw 中也可以做到反选内容。软件名称:CorelDRAW X4 简体中文正式破解安装版(附注册序列号)软件大小:97MB更新时间:2016-05-161、比如我先选文字之外的所有内容,我可以先选择所有文字,利用菜单/编辑下面的全选…

JS处理数据四舍五入 | tofixed与ro

JS处理数据四舍五入 | tofixed与ro

四舍五入,数据,详解,区别,电脑软件,1 、tofixed方法toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所…