关闭

NoSQL之Redis高级应用--发布及订阅消息

标签: dbnosqlredis高级应用消息订阅
1168人阅读 评论(0) 收藏 举报
分类:

一.简介

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解除消息发布者和消息订阅者之间的耦合,Redis作为一个pub/sub的server,在订阅者和发布者之间祈祷了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将消息类型称为通道(channel)。当发布者通过publish命令向redis server发送特定类型的消息时,订阅该消息类型的全部client都会收到此消息。

二.pub/sub命令

pub即publish命令:是redis server向监听它的client发布特定消息的命令

sub即subscribe命令:是client用这个命令订阅响应的频道。

我们打开3个session来做一下实验

session1:订阅了tv1这个频道

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

session2:订阅tv1 和 tv2两个频道

127.0.0.1:6379> subscribe tv1 tv2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv1"
3) (integer) 1
1) "subscribe"
2) "tv2"
3) (integer) 2
1) "message"
2) "tv1"

session3作为redis的服务端用publish命令来广播自己的消息

127.0.0.1:6379> publish tv1 'hello world'
(integer) 2

首先在tv1的频道广播了一条'hello world'消息,返回2说明有2个client在订阅这个频道,这个时候session1和session2中分别会收到消息。

session1

1) "message"
2) "tv1"
3) "hello world"

session2

1) "message"
2) "tv1"
3) "hello world"

如果在session3中再广播一条消息,只在tv2的频道广播,那么session1不会收到这条消息,而session2会收到,大家可以自己测试



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:55674次
    • 积分:857
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:4篇
    • 译文:0篇
    • 评论:4条
    文章存档
    最新评论