【StackExchange.Redis笔记】发布订阅
发布订阅:
Redis 发布订阅 (pub/sub) 是一种消息通信模式,可以用于消息的传输,Redis 的发布订阅机制包括三个部分,发布者,订阅者和 Channel。适宜做在线聊天、消息推送等。
发布者和订阅者都是 Redis 客户端,Channel 则为 Redis 服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息,客户端可以订阅任意数量的频道。
GetSubscriber 方法返回一个 ISubscriber 类型的实例 。发布订阅功能没有数据库的概念,我们可以为其提供一个 async-state 。所有的订阅都是全局的:
ISubscriber 实例不是他们的生命周期 , 发布订阅的特性在redis中被定义为 “channels” , 渠道不需要预先定义在数据库中 。 订阅操作需要一个渠道名称和一个回调函数来处理发布的消息。
订阅
sub.Subscribe("messages", (channel, message) => {
Console.WriteLine((string)message);
});
发布:
sub.Publish("messages", "hello");//发布一个消息到指定的渠道中:
取消订阅:
sub.Unsubscribe("messages");//取消订阅
他将会将 “hello” 这个消息发布到所有订阅了messages渠道的客户端(几乎是实时的)。 和之前一样渠道的名称和消息也可以是二进制的。
指定消息发布的顺序:
当使用 pub/sub API 时,你可以指定消息是并行还是有序的。
有序的意味着你不需要考虑线程安全的问题 ,同时也意味着消息会通过队列完全按照你发布的顺序来进行传递,这必然导致消息的延迟。
并行处理,不能保证消息是按照发布的顺序来进行处理的,你的代码也要保证当存在并发时程序运行正常,
消息的顺序通常是无关紧要的, 并行处理可以获得更好的性能和扩展性。
为确保安全,消息的传递默认是有序的。为获得更好的性能强烈建议你使用并行操作 :
multiplexer.PreserveAsyncOrder = false;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-03-21 随机定时执行任务