Part_two:Redis之發佈訂閱

Redis發佈訂閱

  • 發佈訂閱的命令python

    PUBLISH channel msg
        將信息 message 發送到指定的頻道 channel
    
    SUBSCRIBE channel [channel ...]
        訂閱頻道,能夠同時訂閱多個頻道
    
    UNSUBSCRIBE [channel ...]
        取消訂閱指定的頻道, 若是不指定頻道,則會取消訂閱全部頻道
    PSUBSCRIBE pattern [pattern ...]
        訂閱一個或多個符合給定模式的頻道,每一個模式以 * 做爲匹配符,好比 it* 匹配所    有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配全部    以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類
    PUNSUBSCRIBE [pattern [pattern ...]]
        退訂指定的規則, 若是沒有參數則會退訂全部規則
    PUBSUB subcommand [argument [argument ...]]
        查看訂閱與發佈系統狀態
    注意:使用發佈訂閱模式實現的消息隊列,當有客戶端訂閱channel後只能收到後續發佈到該頻道的消息,以前發送的不會緩存,必須Provider和Consumer同時在線。
  • 發佈訂閱實際操做:redis

    • 啓動兩個redis-cli窗口,訂閱diantai頻道
    #兩個訂閱者輸入:
    127.0.0.1:6379> subscribe diantai
    • 啓動一個redis-cli窗口,向頻道diantai發送消息
    127.0.0.1:6379> publish diantai "hello I am a boy"
    (integer) 2
    • 另外兩個訂閱者收到結果以下:

  • 訂閱一個或者多個符合模式的頻道緩存

    #窗口1:啓動兩個redis-cli窗口,訂閱 wang*頻道
    127.0.0.1:6379> PSUBSCRIBE wang*
    Reading messages... (press Ctrl-C to quit)
    1) "psubscribe"
    2) "wang*"
    3) (integer) 1
    
    #窗口2:啓動redis-cli窗口,均訂閱wang*頻道
    127.0.0.1:6379> PSUBSCRIBE wang*
    Reading messages... (press Ctrl-C to quit)
    1) "psubscribe"
    2) "wang*"
    3) (integer) 1
    
    #窗口3,發佈者消息
    [root@xujunk ~]# redis-cli
    127.0.0.1:6379> PUBLISH wangbaoqiang "jintian zhennanshou "
    (integer) 2
    
    #此時窗口1和窗口2收到:
    1) "pmessage"
    2) "wang*"
    3) "wangbaoqiang"
    4) "jintian zhennanshou "
相關文章
相關標籤/搜索