redis的订阅和发布

#订阅和发布有什么用呢?# 特点# 1、实现一个一对多的效果,只有一个发布者,多个订阅者# 2、实时的发布消息,广播方发布消息,所有的订阅者都会受到消息,一个人同时只能接受#一个频道

1、先写一个公共的类,这个类发布方和订阅方都可以调用,我们在这个类中分别定义了发布方的方法和订阅方的方法
import redis

class RedisHelper(object):
    def __init__(self):
        self.conn = redis.Redis(host="127.0.0.1")
        #首先连上redis
        self.chan_sub = "fm100.4"
        #订阅频道
        self.chan_pub = "fm100.4"
        #发布频道

    def public(self,msg):
        self.conn.publish(self.chan_pub,msg)
        # 发布消息,往self.chan_pub这个频道发布消息,消息的内容是msg
        return  True
    def subscribe(self):
        pub = self.conn.pubsub()
        #生成一个实例,相当于打开收音机

        pub.subscribe(self.chan_sub)
        #订阅self.chan_sub这个频道的内容

        pub.parse_response()
        #准备监听发布方发布的消息,这里仅仅是准备监听,只有当真正的实例去调用这个parse_response方法,才会真正的开始监听消息

        return pub

 

2、在订阅方中导入我们公共的类,然后实例化一个订阅方的对象

from test_redis_class import RedisHelper

obj = RedisHelper()
#先实例化,连接发布方

redis_sub = obj.subscribe()
while True:
    msg = redis_sub.parse_response()
    #这里开始真正的听,如果发布方有消息过来,则打印消息,如果
    #广播方没有消息过来,则一直阻塞
    print(msg)

 

3、在发布方中导入我们公共的类,然后实例化一个发布方的对象

from test_redis_class import RedisHelper

"""
方法1
import redis
r = redis.Redis()

#发布消息下面这个命令的返回值就是有多少订阅方收到广播的消息
r.publish("fm100.4","hahahahah")

"""

# 方法2
#发布消息
obj = RedisHelper()
obj.public("啊哈哈哈哈啊哈哈")

  

时间: 2024-10-09 18:34:29

redis的订阅和发布的相关文章

在php中实现Redis的订阅与发布

<?php //require_once dirname(__FILE__).'/class/RedisClass.class.php'; function init_redis(){ $redis = new Redis(); $redis->connect('127.0.0.1','6379'); return $redis; } //键值过期是通知 function psubscribe($callback){ $redis = init_redis(); $redis->psub

Redis学习笔记(8)-发布/订阅

package cn.com; import java.util.List; import redis.clients.jedis.Jedis; public class Redis_PubSub { public static Jedis redis = new Jedis("localhost", 6379);// 连接redis /** * PUBLISH channel message * 将信息 message 发送到指定的频道 channel . * */ public s

Redis订阅和发布模式和Redis事务

-------------------Redis订阅和发布模式------------------- 1.概念 Redis 发布订阅(pub/sub)是一种消息通信模式: 发送者(pub)发送消息, 订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 2.subscribe channel:订阅个指定频道的信息 3.publish channel message:将信息message 发送到指定的频道channel 4.应用场景 1.今日头条订阅号.微信订阅公众号.新浪微博关

Redis:八、发布订阅实现原理

Redis:相关内容 Redis发布订阅常用命令1.psubscribe pattern [pattern...]//订阅一个或多个符合给定模式的频道2.pubsub subcommand [argument[argument...]]//查看订阅与发布系统状态3.publish channel message将消息发送到指定的频道4.punsubscribe [pattern [pattern...]]退订所有给行模式的频道5.subscribe channel [channel...]订阅给

redis(4)----发布订阅

  一. redis发布订阅简介         发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合.pub /sub不仅仅解决发布者和订阅者直接代码级别耦合,也解决两者在物理部署上的耦合. 二. 测试源码     1. 首先启动redis     2. 发布         新建一个Java Project,然后再新建一个class,为其增加main方法来向redis发布消息: package com.luych.message.publish; i

redis学习笔记之发布订阅

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

redis 订阅与发布

PUBLISH,SUBSCRIBE,等命令实现订阅与发布 订阅/发布到频道 订阅/发布到模式 频道的订阅与信息发送   订阅subscribe,可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时,信息就会被发送给所有订阅指定频道的客户端: 当有新消息通过publish命令发送给频道channel1时,这个消息就会被发送给订阅它的三个客户端: 订阅频道 每个 Redis 服务器进程都维持着一个表示服务器状态的 redis.h/redisServer 结构,结构的 pubsub_ch

Python操作redis的订阅发布功能

安装redis-server yum -y install gcc gcc-c++    #安装编译工具 cd /opt wget -c http://download.redis.io/releases/redis-3.0.5.tar.gz   #下载包 tar xf redis-3.0.5.tar.gz     #解压 cd redis-3.0.5 make MALLOC=libc  #编译 make PREFIX=/usr/local/redis install  #安装 echo 'PA

Redis基本使用 之——发布/订阅

一.说明: 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅.订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的.这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑. 二.发布及订阅功能: 基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交