欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

07_Redis_订阅与发布

程序员文章站 2022-05-09 15:52:39
...

Redis的订阅与发布

Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。
作为例子, 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:


07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:


07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
 上面描述了订阅与发布的关系。

现在我们使用几个客户端来模拟一下redis的订阅与发布

客户端一:
07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 

客户端二:
07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 

客户端三:
07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
 信息发布者:
07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
 现在看一下每一个订阅者受到的消息:


07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 

订阅者返回的数据说明:

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

 命令:subscribe tv 表示订阅了tv这个频道。

返回的三行记录表示:表示当前客户端成功地订阅了信息第二个元素所指示的频道。而信息的第三个元素则记录了目前客户端已订阅频道的总数。

发布消息后,订阅者接收消息

redis 127.0.0.1:6379> SUBSCRIBE tv
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv"
3) (integer) 1
1) "message"
2) "tv"
3) "haier"

 接收消息的三行记录的含义:表示这条信息是由某个客户端执行 PUBLISH 命令所发送的, 真正的信息。 信息的第二个元素是信息来源的频道, 而第三个元素则是信息的内容。

  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 18.1 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 29.3 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 24.8 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 20.5 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 21.3 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 19.6 KB
  • 07_Redis_订阅与发布
            
    
    博客分类: Redis redis订阅与发布 
  • 大小: 101.4 KB