redis发布与订阅

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。Redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将消息类型称为通道(channel)。当发布者通过publish命令向redis server发送特定类型的消息时。订阅该消息类型的全部client都会收到此消息。这里消息的传递是多对多的。一个client可以订阅多个 channel,也可以向多个channel发送消息。

Redis中的发布订阅

Redis实现完整的发布订阅范式,就是说任何一台redis服务器,启动后都可以当做发布订阅服务器。

普通订阅

127.0.0.1:6379> SUBSCRIBE bar

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "bar"

3) (integer) 1

新起个发布者client,发送消息。格式:publish channelName Message。

127.0.0.1:6379> publish bar val

(integer) 1

缺陷:

所有pub/sub很有用,但是redis的实现有这么几个问题:

1,如果一个客户端订阅了频道,但自己读取消息的速度却不够快的话,那么不断积压的消息会使redis输出缓冲区的体积变得越来越大,这可能使得redis本身的速度变慢,甚至直接崩溃。

2,这和数据传输可靠性有关,如果在订阅方断线,那么他将会丢失所有在短线期间发布者发布的消息,这个让绝不多数人都很失望吧。

时间: 2024-08-01 04:14:40

redis发布与订阅的相关文章

文成小盆友python-num12 Redis发布与订阅补充,python操作rabbitMQ

本篇主要内容: redis发布与订阅补充 python操作rabbitMQ 一,redis 发布与订阅补充 如下一个简单的监控模型,通过这个模式所有的收听者都能收听到一份数据. 用代码来实现一个redis的订阅者何消费者. 定义一个类: import redis class Redis_helper(): def __init__(self): self.__conn = redis.Redis(host='192.168.11.87') #创建一个连接 def pub(self, mes, c

Redis - 发布与订阅

发布与订阅(也叫PUB/SUB)的特点是订阅者(Listener)负责订阅频道(Channel),发送者(Publisher)负责向频道发送二进制字符串消息. 每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息.也可以把频道看作是电台,其中订阅者可以同时收听多个电台,而发送者则可以在任何电台发送消息. 使用Redis订阅与发布功能应该注意. 第一个,于Redis系统的稳定性有关. 对于旧版的Redis,如果一个客户端订阅了某个或某些频道,但它读取消息的速度不够快的话,那么不断挤压的消息会

Python redis 发布和订阅

发布和订阅 类似于RSS发布者:服务器订阅者:Dashboad和数据处理看下面代码:类文件名:monitor.py: #!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'gaogd' import redis class RedisHelper:     def __init__(self):         self.__conn = redis.Redis(host='192.168.10.12', port=6379, passw

小贝_redis高级应用-发布与订阅

redis高级应用-发布与订阅 一.发布与订阅(pub/sub)功能 二.发布与订阅(pub/sub)机制 三.redis发布与订阅(pub/sub)的实现 一.发布与订阅(pub/sub)功能 Pub/Sub功能(meansPublish, Subscribe)即发布及订阅功能.基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件:发布者(如服务

RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用

本文版权归博客园和作者本人吴双共同所有,转载请注明本Redis系列分享地址.http://www.cnblogs.com/tdws/tag/NoSql/ Redis Pub/Sub模式 基本介绍 Redis发布订阅—Pub/Sub模式或者说是观察者模式.我想大家即使没有使用过,也已经耳熟能详了. 先简单举例说明下应用场景,在场景中我们可以分析到其优势在哪. 比如你的线上应用应用,你想设置一个日志报警系统,当应用出现异常的时候,立马发送通知给你,可能是短信的形式,也可能是邮件的形式.当然如果只将报

C# Redis系列(三)-Redis发布订阅及客户端编程

发布订阅模型 Redis中的发布订阅 客户端编程示例 0.3版本Hredis 发布订阅模型 在应用级其作用是为了减少依赖关系,通常也叫观察者模式.主要是把耦合点单独抽离出来作为第三方,隔离易变化的发送方和接收方. 发送方:只负责向第三方发送消息.(杂志社把读者杂志交给邮局) 接收方:被动接收消息.(1:向邮局订阅读者杂志,2:门口去接邮过来的杂志) 第三方作用是:存储订阅杂志的接收方,并在杂志过来时送给接收方. (邮局) C#示例,发送方把杂志放到邮局里面: if (QA.AddBug()) E

Redis 发布订阅模型

Redis订阅端: redis 127.0.0.1:6379> SUBSCRIBE redisChat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "redisChat" 3) (integer) 1 现在,两个客户端都发布在同一个通道名redisChat消息及以上的订阅客户端接收消息. Redis 发布端 redis 127.0.0.1:6379> PUBLISH redis

Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 . client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 实例 以下实例演示了发布订阅是如何工作的.在我们实例中我们创建了订阅频道名为 redi

Redis 发布/订阅模式

一.命令简介 1.PSUBSCRIBE 订阅一个或多个符合给定模式的频道.2.PUBLISH 将信息 message 发送到指定的频道 channel .3.PUBSUB 是一个查看订阅与发布系统状态的内省命令, 它由数个不同格式的子命令组成4.PUNSUBSCRIBE 指示客户端退订所有给定模式.5.SUBSCRIBE 订阅给定的一个或多个频道的信息.6.UNSUBSCRIBE 指示客户端退订给定的频道. 二.例子 1.订阅msg 2.发送信息 三.代码实现 using Newtonsoft.