Redis——发布与订阅

Redis的发布订阅功能允许客户端订阅特定频道或模式,当有消息发布到这些频道或匹配模式时,订阅者会接收到消息。SUBSCRIBE和PSUBSCRIBE命令用于订阅,PUBLISH用于发布消息。服务器维护了频道和模式的订阅关系,使用pubsub_channels和pubsub_patterns保存。PUBSUB系列命令用于查询订阅信息,如频道订阅数和模式订阅数。

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

1,Redis的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIRE等命令组成。通过执行SUBSCRIBE命令、客户端可以订阅一个或多个频道,从而成为这些频道的订阅者:每当有其他客户端向被订阅的频道发送消息时,频道的所有订阅者都会收到这条消息。
2,除了订阅频道之外,客户端还可以通过执行PSUBSCRIBE命令订阅一个或多个模式,从而成为这些模式的订阅者:每当有其他客户端向某个频道发送消息时,消息不仅会被发送给这个频道的所有订阅者,它还会被发送给所有与这个频道相匹配的模式的订阅者。
3,当一个客户端执行SUBSCRIBE命令订阅某个或某些频道的时候,这个客户端与被订阅频道之间就建立起了一种订阅关系。Redis将所有频道的订阅关系都保存在服务器状态的pubsub_channels字典里面,这个字典的键是某个被订阅的频道,而键的值则是一个链表,链表里面记录了所有订阅这个频道的客户端。服务器将所有模式的订阅关系都保存在服务器状态的pubsub_patterns属性里面。
4,当一个Redis客户端执行PUBLISH 命令将消息message发送给频道channel的时候,服务器需要执行以下两个动作:
1)将消息message发送给channel频道的所有订阅者
2)如果有一个或多个模式pattern与频道channel相匹配,那么将消息message发送给pattern模式的订阅者
5,查看订阅信息,比如某个频道目前有多少订阅者,又或者某个模式目前有多少订阅者。
1)PUBSUB CHANNELS [pattern]子命令用于返回服务器当前被订阅的频道
2)PUBSUB NUMSUB 频道,接收任意多个频道作为输入参数,并返回这些频道的订阅数量。
3)PUBSUB NUMPAT子命令用于返回服务器当前被订阅模式的数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值