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



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用Redis 实现消息队列

1.用redis中的List可以实现队列,这样可以用来做消息处理和任务调度的队列 2.代码模拟 代码结构 生产者模拟程序 /** * */...

redis发布及订阅消息

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解除消息发布者和消息订阅者之间的耦合,redis作为一个pub/sub的server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过...

Redis大总结之四:任务队列 | 发布/订阅模式

redis的队列操作非常优秀,操作简单,立意明确,容易上手。

Redis学习笔记(九) 排序SORT及参数详解

Redis学习笔记(九) 排序SORT及参数详解1.排序SORTSORT命令可以对列表类型,集合类型和有序集合类型键进行排序,并且可以完成与关系数据库中的连接查询相类似的任务。 SORT 返回或存储...

使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)

前言: 本文基于jedis 2.9.0.jar、commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,js...

[转]Redis作为消息队列与RabbitMQ的性能对比

周末测试了一下RabbitMQ的性能,RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级...

Redis实现消息队列

基于Redis消息队列-实现短信服务化1.Redis实现消息队列原理常用的消息队列有RabbitMQ,ActiveMQ,个人觉得这种消息队列太大太重,本文介绍下基于Redis的轻量级消息队列服务。 ...
  • JaCman
  • JaCman
  • 2016-04-25 22:48
  • 18020

四大线程池详解

new Thread 的弊端首先看一段代码:/** * Created by Zero on 2017/8/30. */ public class ThreadTest { public ...

MQ选型对比RabbitMQ RocketMQ ActiveMQ Kafka

MQ选型对比文档 综合选择RabbitMq

redis进阶4-消息通知、订阅发布

1 使用LPUSH+RPOP即可实现队列的概念。并通过循环,来读取list中数据。 不足:需要使用循环,每隔1s读取队列。 2 BRPOP,有消息加入队列就发通知。BRPOP会阻塞队列,R...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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