Redis学习总结之(五)发布订阅

一、发布订阅

发布订阅是消息传递的一种方式,即发布者发布消息,订阅者获取消息,中间传输的是一种消息,所以应该有四个必须的要素:发布者、订阅(接受)者、通道、消息。在Redis里,由于redis分客户端和服务端,redis服务端提供服务,所以发布者(publishser)和订阅者(subscriber)都是客户端,通道(channel)是服务端,只有subscirber订阅了某个或某一类型的channel,才能消费publisher发往此channel的消息,而且消息是一次性实时消费,不会持久化到channel中,也就是redis是不会持久化消息。如下图所示:

二、命令

  • 订阅:subscribe   channel1  [channel2 ...]   :订阅一个多个给定的通道。
  • 发布:publish  channel1  message :将制定的信息发布到给定的通道中。
  • 系统状态:pubsub subcommand  argument [argument ...] :查看订阅和发布系统的状态。
  • 退订:unsubscribe   channel1  [channel2 ...]:退订(取消)一个多个给定的通道。
  • 模式订阅:psubscribe   pattern1  [pattern2 ...] :订阅符合一个多个给定模式的通道。
  • 模式退订:punsubscribe   pattern1  [pattern2 ...] :退订符合一个多个给定模式的通道。

二、示列

  • 订阅:在第一个客户端 进行订阅testChanel:
127.0.0.1:6379> publish testChanel helloword
(integer) 1
127.0.0.1:6379>
  •  发布:在的第二个客户端发布消息到testChanel,第一个客户端就可要接收到消息。
127.0.0.1:6379> publish testChannel helloword
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> subscribe testChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "testChannel"
3) (integer) 1
1) "message"
2) "testChannel"
3) "helloword"
  •  模式订阅:在第一个客户端进行模式订阅。
127.0.0.1:6379> subscribe test*
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test*"
3) (integer) 1
  • 发布到模式通道:
127.0.0.1:6379> publish test* helloword
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> subscribe test*
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test*"
3) (integer) 1
1) "message"
2) "test*"
3) "helloword"

 

三、参考文档

1.https://www.cnblogs.com/caiguoqing/p/6393298.html

2.https://www.cnblogs.com/yitudake/p/6747995.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值