“Redis:发布/订阅(pub/sub)”的版本间差异

来自Wikioe
跳到导航 跳到搜索
(Eijux移动页面Redis:消息队列(发布和订阅)Redis:发布/订阅,不留重定向)
(没有差异)

2021年10月2日 (六) 11:53的版本


什么是发布订阅?

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

  • 发布订阅也叫“生产者消费者”模式,是实现“消息队列”的一种方式;


消息队列的三要素:

  1. 生产者(producer)
  2. 消费者(consumer)
  3. 消息服务(broker)


发布:

Redis发布.png

订阅:

Reids订阅.png

Redis发布和订阅

发布订阅是消息队列的一种方式,基于消息队列的方式,可以实现系统解耦、削峰填谷,顶住流量洪峰;

  • redis 的主业目前是基于键值对的数据存储、缓存等,消息队列可能是 redis 的一种尝试;
  • 常用的流行的消息队列有:“ActiveMQ”、“RabbitMQ”等;

常用命令

Option Name Description Introduced Deprecated
SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。
PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。
UNSUBSCRIBE [channel [channel ...]] 退订给定的频道。
PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。
PUBLISH channel message 将信息发送到指定的频道。
PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。

模拟实现

(以命令行模拟实现):

  1. 开启 4 个 redis 客户端(“./redis-cli”),如上图,3 个客户端作为消息订阅者,1 个为消息发布者:
  2. 让 3 个消息订阅者订阅某个频道主题:“subscribe channelTest”;
    subscribe channel [channel ...]
    
    Redis订阅channelTest.jpg
  3. 让1个消息发布者向频道主题上发布消息:“publish channelTest message123”;
    publish channel message
    
    Redis发布消息到channelTest.jpg



如果是订阅匹配模式的频道主题:“psubscribe chan*

  1. 订阅:
    psubscribe pattern [pattern ...]
    
    Redis订阅(psubscribe).jpg
  2. 发布:
    Redis发布(psubscribe).jpg