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

原创 2013年12月05日 13:53:18

一.简介

发布订阅(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会收到,大家可以自己测试



开产品发布会

昨天开产品发布会,真没意思,发布人一个一个的念型号。不过认识乔经理比较不错,还有几个人都能联系起认识的人来。第一次去。...
  • wothinkwoshihai
  • wothinkwoshihai
  • 2008年06月05日 11:11
  • 271

NoSQL之Redis---PUB/SUB(订阅与发布)---JAVA实现

[不忘初心] 前文我们介绍了使用Redis基本命令的方式来实现发布与订阅的功能,但是在实际开发中,我们更多会使用高级语言使用Redis。本文我们就来演示如何使用java语言来实现订阅与发布功能。先特别...
  • ABCD898989
  • ABCD898989
  • 2016年06月17日 19:24
  • 1773

Redis的高级实用特性——发布及订阅消息

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub/sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在...
  • xtjsxtj
  • xtjsxtj
  • 2013年12月11日 11:38
  • 7745

Redis发布订阅和应用场景

Redis 发布订阅架构 Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。 发布者和订阅者都是Redi...
  • fly910905
  • fly910905
  • 2017年11月10日 08:46
  • 569

【干货合集】NoSQL技术体系深度解读系列(三):HBase,海量数据存储、超高并发量场景下的NoSQL利器

2018年开年知识盛会——NoSQL数据库直播大讲堂峰会,将于1月19日、23日、25日与大家见面,阿里云Redis、MongoDB、HBase的15位技术专家、产品专家将给大家带来深度的技术及产品分...
  • qq_36510261
  • qq_36510261
  • 2018年01月09日 15:32
  • 110

了解 NoSQL 的必读资料

       NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与 ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系...
  • DL88250
  • DL88250
  • 2010年01月14日 19:59
  • 73049

java使用redis发布和订阅消息

1.使用maven导入相关的jar包 redis.clients jedis 2.7.2 2. 发布者 package com.tbs.redis; imp...
  • u012930316
  • u012930316
  • 2017年08月10日 11:19
  • 608

.NET平台下Redis使用(六)【ServiceStack.Redis发布、订阅服务示例】

#订阅者首先创建RedisClient,然后调用CreateSubscription()方法创建订阅客户端,然后设置订阅客户端的几个事件:OnMessage:接受到消息时。OnSubscribe:订阅...
  • WuLex
  • WuLex
  • 2016年09月30日 17:34
  • 10196

【干货合集】NoSQL技术体系深度解读系列(二):MongoDB,最像关系型数据库的非关系型数据库

2018年开年知识盛会——NoSQL数据库直播大讲堂峰会,将于1月19日、23日、25日与大家见面,阿里云Redis、MongoDB、HBase的15位技术专家、产品专家将给大家带来深度的技术及产品分...
  • qq_36510261
  • qq_36510261
  • 2018年01月09日 15:35
  • 48
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NoSQL之Redis高级应用--发布及订阅消息
举报原因:
原因补充:

(最多只允许输入30个字)