• 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;
    
  • 相关阅读:
    [Swift通天遁地]八、媒体与动画-(11)实现音乐播放的动态视觉效果
    [Swift通天遁地]八、媒体与动画-(10)在项目中播放GIF动画
    [Swift通天遁地]八、媒体与动画-(9)快速实现复合、Label、延续、延时、重复、缓冲、弹性动画
    [Swift通天遁地]八、媒体与动画-(8)使用开源类库快速实现位移动画
    net location
    移动js
    说说
    jquery mobile script
    jquery script
    保持整洁
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13246785.html
Copyright © 2020-2023  润新知