Redis发布订阅

本文介绍了Redis的发布订阅功能,包括如何订阅与取消订阅频道、如何使用模式匹配订阅多个频道及相应的命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。

打开redis客户端,订阅一个频道(subscribe):

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

再打开一个客户端向ch1频道内发送消息"sasa is very handsome”(publish):

127.0.0.1:6379> publish ch1 "sasa is very handsome"

再看第一个客户端的反应:

127.0.0.1:6379> subscribe ch1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "ch1"
3) (integer) 1
1) "message"
2) "ch1"
3) "sasa is very handsome"
取消订阅(unsubscribe):

取消订阅指定的频道,如果不指定,默认取消订阅全部频道。

订阅符合条件的频道(psubscribe):

每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类.

设置订阅条件:

127.0.0.1:6379> psubscribe ch*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "ch*"
3) (integer) 1
发送各种模式的消息:

127.0.0.1:6379> publish ch1 "haha"
(integer) 1
127.0.0.1:6379> publish ch.1 "hello"
(integer) 1
127.0.0.1:6379> publish ch1 "hi"
(integer) 1
127.0.0.1:6379> publish channel "nihao"
(integer) 1
127.0.0.1:6379> publish dh "holo"
(integer) 0
接收消息:

1) "pmessage"
2) "ch*"
3) "ch.1"
4) "hello"
1) "pmessage"
2) "ch*"
3) "ch1"
4) "hi"
1) "pmessage"
2) "ch*"
3) "channel"
4) "nihao"
取消订阅符合条件的频道(punsubscribe):

使用punsubscribe命令只能退订通过psubscribe命令订阅的规则,不会影响直接通过subscribe命令订阅的频道;同样unsubscribe命令也不会影响通过psubscribe命令订阅的规则。另外容易出错的一点是使用punsubscribe命令退订某个规则时不会将其中的通配符展开,而是进行严格的字符串匹配,所以punsubscribe无法退订channel.规则,而是必须使用punsubscribechannel.*才能退订

-----------------------------------------参考-----------------------------------

http://blog.youkuaiyun.com/wzzfeitian/article/details/42081645





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值