zoukankan      html  css  js  c++  java
  • redis pub/sub 发布订阅

    Redis的列表数据结构有blpopbrpop命令,能从列表里返回且删除第一个(或最后一个)元素,或者被堵塞,直到有一个元素可供操作。这可以用来实现一个简单的队列。(参考:http://www.cnblogs.com/youxin/p/4191547.html)

    (译注:对于blpopbrpop命令,如果列表里没有关键字可供操作,连接将被堵塞,直到有另外的Redis客户端使用lpushrpush命令推入关键字为止。)

    此外,Redis对于消息发布和频道订阅有着一流的支持。你可以打开第二个redis-cli窗口,去尝试一下这些功能。在第一个窗口里订阅一个频道(我们会称它为warnings):

    subscribe warnings
    

    其将会答复你订阅的信息。现在,在另一个窗口,发布一条消息到warnings频道:

    publish warnings "it's over 9000!"
    

    如果你回到第一个窗口,你应该已经接收到warnings频道发来的消息。

    你可以订阅多个频道(subscribe channel1 channel2 ...),订阅一组基于模式的频道(psubscribe warnings:*),以及使用unsubscribepunsubscribe命令停止监听一个或多个频道,或一个频道模式。

    最后,可以注意到publish命令的返回值是1,这指出了接收到消息的客户端数量

    这里的客户端与server端采用长连接建立推送机制,一个客户端发布消息,可以在多个客户端收到通知。

    参考:

    http://redis.io/topics/pubsub 中文译文:http://www.redis.cn/topics/pubsub.html

    https://redis.readthedocs.org/en/latest/pub_sub/index.html

  • 相关阅读:
    页面与服务器的交互,,经典案例
    setInterval和clearInterval
    setAttribute,,,getAttribute,,,,
    字符串拼接
    上下图片连动效果
    文本框获得焦点
    获取机器上的时间
    检测奇偶性
    置顶博文
    P1962 斐波那契数列 题解
  • 原文地址:https://www.cnblogs.com/youxin/p/3834511.html
Copyright © 2011-2022 走看看