redisr的发布与订阅

  • 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 未指定,则订阅的所有模式都会被退订,否则只退订指定的订阅的模式
  • 基于频道
  • 基于模式

注意事项

  1. 订阅者使用 SUBSCRIBE 命令订阅频道后,将会一直等待新消息。可以使用 UNSUBSCRIBE 命令取消订阅。
    2. Redis 的发布订阅模式不保证消息的可靠传递。如果订阅者在消息发布之前已断开连接,则无法接收到已发布的消息。换句话说,如果是先发布消息,再订阅频道,不会收到订阅之前就发布到该频道的消息!
    3. Redis 提供了其他相关的命令和功能,如按模式订阅(PSubscribe)、取消订阅(Unsubscribe)等。可以查阅 Redis 文档以获取更多信息。
    请注意,在高吞吐量和大规模发布订阅场景下,Redis 的发布订阅模式可能不是最佳选择,可以考虑使用专门的消息队列系统来替代。
posted @ 2024-10-30 11:31  w我自横刀向天笑  阅读(42)  评论(0)    收藏  举报