Redis 发布与订阅

Redis 自从2.0版本后,增加发布与订阅等新特性,该功能有点类似设计模式中的观察者模式,对消息的生产者与接收者进行松耦合。也可以用该特性实现系统与系统之间的消息传递,该功能的

的实现非常实用和高效。

下面我们介绍一下,如何使用发布与订阅 。redis提供发布与订阅几个命令:

  • PUBLISH
  • SUBSCRIBE
  • PSUBSCRIBE
  • UNSUBSCRIBE
  • PUNSUBSCRIBE

 

  • PUBLISH channel message
    • 将信息 message 发送到指定的频道 channel 。
  • SUBSCRIBE channel [channel ...]
    • 订阅给定的一个或多个频道的信息。
  • PSUBSCRIBE pattern [pattern ...]
    • 订阅一个或多个符合给定模式的频道。
  • PUNSUBSCRIBE [pattern [pattern ...]]
    • 指示客户端退订所有给定模式。
  • UNSUBSCRIBE [channel [channel ...]]
    • 指示客户端退订给定的频道。

发布消息

redis 10.40.14.77:8379> publish testchannel testc
(integer) 1
redis 10.40.14.77:8379> publish testchannel 'test message'
(integer) 1
redis 10.40.14.77:8379> publish testchannel 'a am'
(integer) 1
redis 10.40.14.77:8379> publish testchannel 'china'
(integer) 1
redis 10.40.14.77:8379> 
 
订阅消息
redis 10.40.14.77:8379> subscribe testchannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "testchannel"
3) (integer) 1
1) "message"
2) "testchannel"
3) "test"
1) "message"
2) "testchannel"
3) "test"
1) "message"
2) "testchannel"
3) "testc"
1) "message"
2) "testchannel"
3) "test message"
1) "message"
2) "testchannel"
3) "a am"
1) "message"
2) "testchannel"
3) "china"
上述示例,从一个客户端打开发送消息,在另一客户端接收消息,频道名:testchannel 。
也要以一次性订阅多个channel
 
redis 10.40.14.77:8379> publish c1 'hello world'
(integer) 1
redis 10.40.14.77:8379> publish c2 'hello world c2'
(integer) 1

 

订阅 消息方

redis 10.40.14.77:8379> subscribe c1 c2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2
1) "message"
2) "c1"
3) "hello world"
1) "message"
2) "c2"
3) "hello world c2"
 
也可以指定一个或多个pattern订阅消息
redis 10.40.14.77:8379> publish c1.news 'hello world news '
(integer) 1
redis 10.40.14.77:8379> publish c1.pics 'hello world pics'
(integer) 1
redis 10.40.14.77:8379> 

订阅消息方

eading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "c1.*"
3) (integer) 1
1) "pmessage"
2) "c1.*"
3) "c1.news"
4) "hello news cannel"
1) "pmessage"
2) "c1.*"
3) "c1.pics"
4) "hello pics chnnale"
1) "pmessage"
2) "c1.*"
3) "c1.news"
4) "hello world news "
1) "pmessage"
2) "c1.*"
3) "c1.pics"
4) "hello world pics"
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值