zoukankan      html  css  js  c++  java
  • Redis之发布订阅

    Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信, 发布者客户端向指定的频道(channel) 发布消息, 订阅该频道的每个客户端都可以收到该消息,如下图所示。

    常用命令:

    发布消息
    publish channel message
    示例:
    127.0.0.1:6379> publish channel:sports "Tim won the championship"
    (integer) 0
    向channel:sports频道发布一条消息“Tim won the championship”, 返回结果为订阅者个数, 因为此时没有订阅, 所以返回结果为0。
    
    订阅消息
    subscribe channel [channel ...]
    订阅者可以订阅一个或多个频道。
    
    有关订阅命令有两点需要注意:
    ·客户端在执行订阅命令之后进入了订阅状态, 只能接收subscribe、psubscribe、 unsubscribe、 punsubscribe的四个命令。
    ·新开启的订阅客户端, 无法收到该频道之前的消息, 因为Redis不会对发布的消息进行持久化。
    
    
    取消订阅
    unsubscribe [channel [channel ...]]
    
    按照模式订阅和取消订阅
    psubscribe pattern [pattern...]
    punsubscribe [pattern [pattern ...]]
    示例:
    订阅以it开头的所有频道
    127.0.0.1:6379> psubscribe it*
    Reading messages... (press Ctrl-C to quit)
    1) "psubscribe"
    2) "it*"
    3) (integer) 1
    
    
    查询订阅
    查看活跃的频道(所谓活跃的频道是指当前频道至少有一个订阅者)
    pubsub channels [pattern]
    示例:
    127.0.0.1:6379> pubsub channels
    1) "channel:sports"
    2) "channel:it"
    3) "channel:travel"
    127.0.0.1:6379> pubsub channels channel:*r*
    1) "channel:sports"
    2) "channel:travel"
    
    查看频道订阅数
    pubsub numsub [channel ...]
    
    查看模式订阅数
    pubsub numpat

    使用场景

    聊天室、 公告牌、 服务之间利用消息解耦都可以使用发布订阅模式。

  • 相关阅读:
    Event bubbling
    input/change event practice
    Form event
    Event_Object
    DOM_this keyword
    Random color generator exercise
    DOM_events_addEventListener
    Spring值SpEL
    Spring之使用外部属性文件
    Spring之Bean的作用域
  • 原文地址:https://www.cnblogs.com/MacoLee/p/14001078.html
Copyright © 2011-2022 走看看