• Redis发布订阅


    简介

    发布者和订阅者都是Redis客户端。发布者可以发消息到任意多个频道上,订阅者可以订阅任意多个频道。

    订阅命令

    subscribe channel [channel ...]:返回的数字 1 , 2 表示订阅的第n个频道,频道返回的消息类型是message

    127.0.0.1:6379> subscribe education health
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "education"
    3) (integer) 1
    1) "subscribe"
    2) "health"
    3) (integer) 2
    

    psubscribe  channel [channel ...] :p—pattern,模式匹配,相当正则。假如有频道 news.it  、news.beauty 、newsPE , health 、那只有前两个符合正则news.*,那么前两个频道的消息,订阅者都能接受。频道返回的消息类型是pmessage

    127.0.0.1:6379> subscribe news.*
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "news.*"
    3) (integer) 1
    

    unsubscribe [channel [channel ...]] : 取消通过subscribe订阅的频道 ,如果不加传入频道参数,客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订

    punsubscribe [channel [channel ...]] :取消通过psubscribe订阅的频道 ,如果不加传入频道参数,客户端使用 PSUBSCRIBE 命令订阅的所有频道都会被退订

    redis一旦接受了一条订阅命令之后,就不能再接受下一条命令,订阅命令就是阻塞式的。只有强行退出Ctrl+C,重启客户端,才能输入别的命令。

    发布命令

    publish channel message :返回的整数表示接收到该消息的客户端总数。

    C:Usersuser>redis-cli
    127.0.0.1:6379> publish new.love "love forever"
    (integer) 0
    127.0.0.1:6379> publish new.* "hehe"
    (integer) 0
    127.0.0.1:6379> publish foo "food"
    (integer) 1
    127.0.0.1:6379> publish foo "food1"
    (integer) 3
    127.0.0.1:6379> publish foo "bibi"
    (integer) 3
    127.0.0.1:6379> publish foo "hiie"
    (integer) 2
    127.0.0.1:6379> publish foo "oooo"
    (integer) 1
    127.0.0.1:6379> publish aaaBB "shenjingbing"
    (integer) 1
    
  • 相关阅读:
    快速幂
    快速幂
    快速排序的分治求解方法
    快速排序的分治求解方法
    合并排序的分治求解方法
    合并排序的分治求解方法
    重写ListView解决ListView内部ViewPaper滑动事件冲突问题
    HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)
    Java 反射机制[Field反射]
    【公告】博客数据异常已所有恢复
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9440403.html
Copyright © 2020-2023  润新知