Redis学习笔记 ——(10)发布订阅

Redis学习笔记 ——(10)发布订阅

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

命令

Redis主要提供了发布消息、订阅频道、取消订阅、按照模式订阅等命令。

发布消息
127.0.0.1:6379> publish channel message
(integer) 0
127.0.0.1:6379> publish channel:msg "they are good friends"
(integer) 0
订阅消息

subscribe channel [CHANNEL …]
订阅者可以订阅一个或者多个频道,下面操作是当前客户端订阅了channel:msg
在这里插入图片描述左边订阅了之后就是一个阻塞状态,当左边的发送端 进行消息的发送,右边就会推送新的内容。

127.0.0.1:6379> subscribe channel:msg
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel:msg"
3) (integer) 1
1) "message"
2) "channel:msg"
3) "here is a message"

需要注意的是,客户端再执行订阅命令之后就进入了订阅状态,只能接受subscribe、psubscribe、unsubscribe、punsubscribe的四个命令,新开启的订阅客户端没有办法接受到之前的信息,因此Redis不会对发布的消息进行持久化。

取消订阅

unsubscribe channge [channel …]

unsubscribe channge:msg
查看订阅
  • 查看活跃的频道
    pubsub channels
  • 查看频道订阅数
    pubsub numsub [channel]
127.0.0.1:6379> pubsub numsub channel:msg
1) "channel:msg"
2) (integer) 1
使用场景

聊天室、公告牌、服务之间利用消息解耦都可以使用发布订阅模式,例如大家都在一个群里,当加入群聊的时候,所有人都订阅了这个频道,同时每个人在发消息的时候又作为发布者发到了频道当中,所有人可以收到消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值