Redis的发布订阅

是什么:

  进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

  订阅/发布消息图

先订阅后发布后才能收到消息

1.可以一次性订阅多个,SUBSCRIBE c1 c2 c3

2.消息发布,PUBLISH c2 hello-redis

先订阅

127.0.0.1:6379> SUBSCRIBE c1 c2 c3
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2
1) "subscribe"
2) "c3"
3) (integer) 3
1) "message"

发布

127.0.0.1:6379> PUBLISH c2 hello-redis
(integer) 1
127.0.0.1:6379> PUBLISH c1 hello1122
(integer) 1
127.0.0.1:6379>

收到消息

127.0.0.1:6379> SUBSCRIBE c1 c2 c3
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2
1) "subscribe"
2) "c3"
3) (integer) 3
1) "message"
2) "c2"
3) "hello-redis"
1) "message"
2) "c1"
3) "hello1122"

======================

3.订阅多个,通配符*,PSUBSCRIBE new*

4.收取消息,PUBLISH new1 redis2015

127.0.0.1:6379> PSUBSCRIBE new*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "new*"
3) (integer) 1
1) "pmessage"
2) "new*"
3) "new1"
4) "redis2015"
1) "pmessage"
2) "new*"
3) "new2"
4) "redis2016"

127.0.0.1:6379> PUBLISH new1 redis2015
(integer) 1
127.0.0.1:6379> PUBLISH new2 redis2016
(integer) 1
127.0.0.1:6379>

时间: 2024-11-03 05:31:58

Redis的发布订阅的相关文章

python之上下文管理、redis的发布订阅

使用with打开文件的方式,是调用了上下文管理的功能 1 #打开文件的两种方法: 2 3 f = open('a.txt','r') 4 5 with open('a.txt','r') as f 6 7 实现使用with关闭socket 8 import contextlib 9 import socket 10 11 @contextlib.contextmanage 12 def Sock(ip,port): 13 socket = socket.socket() 14 socket.bi

StackExchange.Redis 使用-发布订阅 (二)

使用Redis的发布订阅功能 redis另一个常见的用途是发布订阅功能 . 它非常的简单 ,当连接失败时 ConnectionMultiplexer 会自动重新进行订阅 . ISubscriber sub = redis.GetSubscriber(); GetSubscriber 方法返回一个 ISubscriber 类型的实例 .发布订阅功能没有数据库的概念,我们可以为其提供一个 async-state .所有的订阅都是全局的:ISubscriber 实例不是他们的生命周期 , 发布订阅的特

redis的发布订阅模式

概要 redis的每个server实例都维护着一个保存服务器状态的redisServer结构 struct redisServer { /* Pubsub */ // 字典,键为频道,值为链表 // 链表中保存了所有订阅某个频道的客户端 // 新客户端总是被添加到链表的表尾 dict *pubsub_channels;  /* Map channels to list of subscribed clients */ // 这个链表记录了客户端订阅的所有模式的名字 list *pubsub_pa

redis(3)发布订阅

一.发布/订阅模式 在软件工程里面,发布/订阅是一种消息模式,这种模式旨在将消息发送者和消息接收者解耦.发送者不需要关心将消息发送给谁,接收者也不需要知道消息的发送者是谁.发送者将消息发布以后就结束动作,接收者可以订阅自己感兴趣的消息. 除了发布/订阅模式还有一种和它很类似的,消息队列,是一种典型的面向消息中间件的系统.许多消息系统都会同时支持发布/订阅和消息队列模型,例如Java Message Service(JMS) 参见:维基百科 二.redis的发布/订阅 我们从一个简单的示例开始,首

【spring boot】【redis】spring boot 集成redis的发布订阅机制

一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送给对自己感兴趣的 消息订阅者们,进行消费. 2.redis的发布订阅和专业的MQ相比较 1>redis的发布订阅只是最基本的功能,不支持持久化,消息发布者将消息发送给频道.如果没有订阅者消费,消息就丢失了. 2>在消息发布过程中,如果客户端和服务器连接超时,MQ会有重试机制,事务回滚等.但是Red

Redis学习-发布/订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.Redis 客户端可以订阅任意数量的频道. 常用命令 命令 描述 复杂度 返回 PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道.每个模式以*作为匹配符,比如it*匹配所有以 it 开头的频道( it.news . it.blog . it.tweets 等等) O(N),N是订阅的模式的数量. 接收到的信息 PUBLISH channe

(二)Redis 笔记——发布&订阅、事务、数据库操作

1. Redis 发布订阅 1.1 概述 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 . client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 1.2 步骤: 1.2.1.  创建了订阅频

redis pipeset发布订阅

#!/usr/bin/env python # Author:Zhangmingda import redis,time pool = redis.ConnectionPool(host='192.168.11.5',port=6379,db=2) r = redis.Redis(connection_pool=pool) pipe = r.pipeline(transaction=True) pipe.set('age','22') time.sleep(15) pipe.execute()

Redis学习九:Redis的发布订阅

发布订阅功能,redis也具备,但是要知道的是redis主要功能还是分布式的缓存功能,因此这种订阅发布功能很少用,有专门的kafka  activemq 等消息中间件来完成,因此本文只是简单介绍,了解即可,后面会专门讲解kafka 一.是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 订阅/发布消息图 二.命令 三.案列 先订阅后发布后才能收到消息,1 可以一次性订阅多个,SUBSCRIBE c1 c2 c3 2 消息发布,PUBLISH c2 hello-

redis实现发布订阅

订阅者 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import redis 4 5 r = redis.Redis(host='192.168.11.119') 6 pub = r.pubsub() 7 pub.subscribe('fm9999') 8 while True: 9 msg= pub.parse_response() 10 print(msg) 发布者 1 #!/usr/bin/env python 2 # -*- co