zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    uva 1510
    ADN中国团队參加微软的Kinect全国大赛获得三等奖
    在 window7 window8下公布webService注意问题
    html5调用手机摄像头,实现拍照上传功能
    4、深入理解Bean
    恶补jquery(四)jquery中事件--冒泡
    html5css3杂记
    Core Data 和 sqlite3的性能对比【图】3gs,iPhone4,4s,5的性能测试。
    boost 的函数式编程库 Phoenix入门学习
    information_schema模式表介绍 processlist
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13246785.html
Copyright © 2011-2022 走看看