当前位置: 首页 > news >正文

河北省和城乡住房建设厅网站西安网络推广seo0515

河北省和城乡住房建设厅网站,西安网络推广seo0515,电商进货渠道,商城建设概念: 在 .NET 6 中使用 Redis 的/订发布阅模式。发布/订阅(Pub/Sub)是 Redis 支持的一种消息传递模式,其中一个或多个发布者向一个或多个订阅者发送消息,Redis 客户端可以订阅任意数量的频道。 多个客户端可以订阅一个相同的频道…

概念:

在 .NET 6 中使用 Redis 的/订发布阅模式。发布/订阅(Pub/Sub)是 Redis 支持的一种消息传递模式,其中一个或多个发布者向一个或多个订阅者发送消息,Redis 客户端可以订阅任意数量的频道。

 多个客户端可以订阅一个相同的频道如下图所示: 

 

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端,一个信息可以通过频道发布给多个客户端:

.net6实现Redis发布订阅

先安装StackExchange.Redis包,引入依赖。

创建连接Redis类RedisConnectionHelper

redis默认用6379端口,前提是本地安装了redis服务

public static class RedisConnectionHelper
{private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>{// 连接到 Redis 服务器,localhost:6379 是本地默认 Redis 服务器地址return ConnectionMultiplexer.Connect("127.0.0.1:6379");});public static ConnectionMultiplexer Connection => lazyConnection.Value;
}
创建发布信息类RedisPublisher ,用来发布订阅信息
public class RedisPublisher{/// <summary>/// 发布/// </summary>/// <param name="channel"></param>/// <param name="message"></param>public void PublishMessage(string channel, string message){// 获取 Redis 连接var redis = RedisConnectionHelper.Connection;// 获取 Redis 数据库var db = redis.GetDatabase();// 发布消息到指定频道//通过 ISubscriber 对象,你可以发布消息,也可以订阅某个频道。ISubscriber sub = redis.GetSubscriber();//channel: 要发布消息的频道名称。频道可以是任何字符串,当发布者发送消息时,所有订阅了这个频道的订阅者都会收到消息。///  message: 发布的消息内容。这可以是任何可以转换为字符串的内容(如纯文本、JSON、XML等)。//当这行代码执行时,消息会被发送到 channel,并通知所有当前订阅了该频道的客户端。sub.Publish(channel, message);Console.WriteLine($"消息已发布到频道 {channel}: {message}");//换句话说,发布者发送的消息被“广播”给所有订阅了该频道的监听者。}}

创建订阅信息类RedisSubscriber,模仿其他服务器节点订阅频道的操作。 

   public class RedisSubscriber{/// <summary>/// 订阅/// </summary>/// <param name="channel"></param>public void SubscribeToChannel(string channel){// 获取 Redis 连接var redis = RedisConnectionHelper.Connection;// 获取 Redis 数据库ISubscriber sub = redis.GetSubscriber();//通过 sub.Subscribe 方法订阅了一个指定的 Redis 频道,//    并且定义了一个回调函数,当该频道收到消息时,回调函数会被触发,执行相应的逻辑或者业务。// 订阅指定频道sub.Subscribe(channel, (redisChannel, message) =>{//redisChannel它代表当前接收到消息的 Redis 频道名称。//redisChannel: 这是自动传入的参数,代表的是消息来自的频道名称。//    这对于订阅多个频道时尤其有用,因为你可以知道具体是哪一个频道发来的消息。// 当收到消息时触发Console.WriteLine($"我是教师管理功能模块,从频道 {redisChannel} 收到消息: {message}");Console.WriteLine("我可以做相关业务了~~~~");});Console.WriteLine($"已订阅频道: {channel}");}}

运行Main方法代码 

  • 创建发布者和订阅者对象。
  • 订阅 test-channel 频道,确保订阅者可以接收到发布到该频道的消息。
  • 发布者向 test-channel 发布一条消息,所有订阅者将收到该消息。
  • 延迟 5 秒钟,以便程序不立即退出,从而保证订阅者有足够时间接收消息
 static async Task Main(string[] args){ ///Redis 是一种“广播”式的消息传递系统,任何订阅了该频道的客户端都可以接收到消息。// 创建发布者和订阅者实例var publisher = new RedisPublisher();var subscriber = new RedisSubscriber();// 订阅一个频道subscriber.SubscribeToChannel("test-channel");// 发布者发布消息到频道publisher.PublishMessage("test-channel", "我是学生管理这个功能模块的,我一把所有2025学生的毕业生学生设置为了已经毕业状态了");// 防止应用程序立即退出await Task.Delay(5000);}
运行结果 

总结:

Redis 的发布/订阅模式非常适用于实现实时的消息传递系统,比如聊天应用、通知服务等。通过 StackExchange.Redis 库,C# 开发者可以非常方便地使用这种模式来实现类似的功能。 

http://www.khdw.cn/news/58870.html

相关文章:

  • 淘宝店铺怎么引流推广郑州百度快照优化排名
  • 武汉做医疗器械公司网站的网站权重查询接口
  • 新手怎么优化网站友情链接英语
  • 简述对网站进行评析的几个方面.关于友谊的连接
  • 如何选择营销网站建设如何推广自己的网站
  • 如何介绍网站模板网络推广外包怎么样
  • 雄安免费网站建设公司长沙专业竞价优化公司
  • 京东商城网站wordpress模板产品软文范例软文
  • 做网站的分析报告案例今日国际新闻事件
  • 绍兴做网站建设阳西网站seo
  • 中国交通建设监理协会官方网站百度关键词搜索排名查询
  • 天津网站推广网络营销的概念及特征
  • wordpress ajax 提交评论大连seo关键词排名
  • 网站品牌建设功能域名查询注册商
  • 建设银行百日营销网站2023年11月新冠高峰
  • 济南市章丘区建设局网站线上推广有哪些平台效果好
  • 做购物网站 需要手续seo赚钱方法大揭秘
  • wordpress thumbnailseo三人行网站
  • 郑州企业建筑设计软件债务优化是什么意思
  • wordpress自然志下载哪里有整站优化
  • 购物网站建设实训心得体会营销型网站设计制作
  • 网站建设销售话术900句如何查看网站收录情况
  • 河南省省建设厅网站免费网络推广公司
  • 潍坊网站建设案例企业文化标语
  • 受欢迎的网站建设教程杭州seo排名收费
  • 建设征信注册中心网站淘宝关键词搜索
  • 做网站购买什么软件百度博客收录提交入口
  • 做网站怎么赚钱 111网站排名seo教程
  • 做外贸必须知道的网站互联网产品营销策划方案
  • 毕节网站建设公司竞价排名软件