- redis发布订阅理解图
发布者(Publisher)
- 使用
PUBLISH
命令将消息发布到指定的频道。
订阅者(Subscriber)
- 使用
SUBSCRIBE
命令订阅一个或多个频道以接收消息。所有订阅同一频道的订阅者都会收到此消息。
频道(Channel)
- 频道是消息的通道,发布者通过指定频道来发布消息,订阅者通过订阅频道来接收相关消息。
消息(Message)
- 消息是由发布者发送给订阅者的数据。
命令
subscribe channel [channel ... ] | 订阅给定的一个或多个频道 |
---|---|
unsubscribe channel [channel ... ] | 退订给定的频道 说明:若没有指定channel,则默认退订所有频道 |
publish channel message | 将消息发送给指定频道 channel 返回结果:接收到信息的订阅者数量,无订阅者返回0 |
pubsub channels [argument [atgument ...] ] | 查看订阅与发布系统的状态 说明:返回活跃频道列表(即至少有一个订阅者的频道,订阅模式的客户端除外) |
psubscribe pattern1 [pattern...] | 订阅一个或多个符合给定模式的频道 说明:每个模式以 * 作为匹配符;例如 shujia* 匹配所有以shujia开头的频道:shujia.java、shujia.hadoop |
punsubscribe [pattern [pattern ...] ] | 退订所有给定模式的频道 说明:pattern 未指定,则订阅的所有模式都会被退订,否则只退订指定的订阅的模式 |
- 基于频道
- 基于模式
注意事项
标签:退订,订阅,频道,redisr,发布,消息,channel From: https://www.cnblogs.com/w-ll/p/18515520
- 订阅者使用 SUBSCRIBE 命令订阅频道后,将会一直等待新消息。可以使用 UNSUBSCRIBE 命令取消订阅。
2. Redis 的发布订阅模式不保证消息的可靠传递。如果订阅者在消息发布之前已断开连接,则无法接收到已发布的消息。换句话说,如果是先发布消息,再订阅频道,不会收到订阅之前就发布到该频道的消息!
3. Redis 提供了其他相关的命令和功能,如按模式订阅(PSubscribe)、取消订阅(Unsubscribe)等。可以查阅 Redis 文档以获取更多信息。
请注意,在高吞吐量和大规模发布订阅场景下,Redis 的发布订阅模式可能不是最佳选择,可以考虑使用专门的消息队列系统来替代。