宝哥软件园

如何 net core使用Redis发布订阅

编辑:宝哥软件园 来源:互联网 时间:2021-09-03

Redis是一个性能很强的内存数据库,一般都是作为缓存使用,但它不仅可以作为缓存使用,例如著名的分布式框架dubbo就可以将Redis作为服务注册表使用。接下来,我们将介绍的发布/订阅功能。网芯采用Redis。

Redis发布订阅

Redis发布和订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。

下图显示了频道频道1以及订阅该频道的三个客户端—— client2、client5和client1之间的关系:

当通过PUBLISH命令向channel1发送新消息时,该消息将被发送给订阅它的三个客户端:

使用Redis命令

首先,通过subscribe redismessage命令将两个客户端订阅到redismessage通道:

然后打开一个Redis客户端,使用命令publish redismessage发布消息

使用实现。净芯

我这里选择的连接驱动是StackExchange.Redis,需要注意的是ServiceStack。Redis连接驱动已经逐渐商业化,4.0及以上有局限性,所以免费易用的StackExchange。Redis可以由nuget安装。

建立订阅客户端

//使用(connection multiplexer redis=connection multiplexer . connect(' 127 . 0 . 0 . 1:6379 '){ isunsubscriber sub=redis . getsubscriber())创建连接;//订阅频道sub。订阅命名消息(' messages ',(通道,消息)={//输出收到的消息console . writeline($ '[{ datetime . now : hh :mm 3360s }]{ message } ');});控制台。WriteLine('订阅的消息');控制台。ReadKey();}设置发布客户端

//使用(connection multiplexer redis=connection multiplexer . connect(' 127 . 0 . 0 . 1:6379 '){ isunsubscriber sub=redis . getsubscriber())创建连接;控制台。WriteLine('请输入任意字符并输入exit退出');字符串输入;do { input=Console。ReadLine();潜艇。发布('消息',输入);} while(输入!=' exit ');}下面运行着一个发布客户端和两个订阅客户端:

演示下载

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

更多资讯
游戏推荐
更多+