使用redis pub/sub 时间订阅与发布消息

import redis
import time

r=redis.StrictRedis(host="127.0.0.1",port=6379)
#你也可以选择使用地址池的方式建立连接

while True:
  if __name__=‘__main__‘:
    dis=Get_Distance()
    p=r.publish()
    p.subscribe("first channel") #订阅

    r.publish("first channel",dis) #发布(调用了Get_Distance 函数)
    p.get_message()
    time.sleep(0.5) #在网络状态不佳时,若挂起时间太短则返回值为None
    a=p.get_message()
    print a     

此处我把 public 同 subscribe 放在同一个函数中运行。

测试结果:

此外,这只是可以读出订阅后收到的消息。程序若要对消息进行处理,则需要使用回调函数。

运行环境:

python-2.7

Ubuntu 16.4

时间: 2024-10-06 00:28:33

使用redis pub/sub 时间订阅与发布消息的相关文章

redis pub/sub 发布订阅

Redis的列表数据结构有blpop和brpop命令,能从列表里返回且删除第一个(或最后一个)元素,或者被堵塞,直到有一个元素可供操作.这可以用来实现一个简单的队列. (译注:对于blpop和brpop命令,如果列表里没有关键字可供操作,连接将被堵塞,直到有另外的Redis客户端使用lpush或rpush命令推入关键字为止.) 此外,Redis对于消息发布和频道订阅有着一流的支持.你可以打开第二个redis-cli窗口,去尝试一下这些功能.在第一个窗口里订阅一个频道(我们会称它为warnings

redis中的发布订阅(Pub/Sub)

这里使用nodejs的redis模块说明,具体可见https://www.npmjs.com/package/redis,先来通过一个简单的例子了解下redis中的Pub/Sub具体怎么实现吧.. var express = require('express'); var router = express.Router(); var redis = require("redis"); /* GET home page. */ router.get('/', function(req,

Pub/Sub 发布订阅

Related commands 相关命令 PSUBSCRIBE PUBLISH PUBSUB PUNSUBSCRIBE SUBSCRIBE UNSUBSCRIBE Pub/Sub SUBSCRIBE, UNSUBSCRIBE and PUBLISH implement the Publish/Subscribe messaging paradigm where (citing Wikipedia) senders (publishers) are not programmed to send

Redis七(发布订阅)

发布与订阅(pub/sub) 介绍 Redis 通过 PUBLISH . SUBSCRIBE 等命令实现了订阅与发布模式, 这个功能提供两种信息机制, 分别是订阅/发布到频道和订阅/发布到模式 订阅者可以订阅一个或多个频道,发布者向一个频道发送消息后,所有订阅这个频道的订阅者都将收到消息,而发布者也将收到一个数值,这个数值是收到消息的订阅者的数量.订阅者只能收到自它开始订阅后发布者所发布的消息,而之前发布的消息是收不到的. 运行原理: Redis 的 SUBSCRIBE 命令可以让客户端订阅任意

redis事务以及发布订阅

1. 什么是redis的事务? ???????? redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体,就是一个队列.当执行的时候,一次性按照添加顺序依次执行,中间不会被打断或者干扰. 2. 能干嘛? ???????? 一个队列中,一次性,顺序性,排他性的执行一系列命令 3. redis事务基本操作 开启事务:multi 设置事务的开始位置,这个指令开启后,后面所有的指令都会加入事务中 执行事务: exec 设置事务的结束位置,同时执行事务,与multi成对出现,成对使用 取消

redis hash过期时间

Redis中有个设置时间过期的功能,即通过setex或者expire实现,目前redis没有提供hsetex()这样的方法,redis中过期时间只针对顶级key类型,对于hash类型是不支持的可以采用,所以如果想对hash进行expires设置 redis 127.0.0.1:6379> hset expire:me name tom (integer) 0 redis 127.0.0.1:6379> hget expire:me name "tom" redis 127.

redis pub/sub Spring StringRedisTemplate

redis 订阅发布 项目名称:SmRemind_NEW @Service public class PubServiceImpl implements PubService { @Resource(name="stringRedisTemplate") private  StringRedisTemplate stringRedisTemplate; private String channelTopic = "Baojing"; /*发布消息到Channel*/

Spring Data Redis—Pub/Sub(附Web项目源码)

一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户端为订阅者(subscriber). 为了解耦发布者(publisher)和订阅者(subscriber)之间的关系,Redis 使用了 channel (频道)作为两者的中介 —— 发布者将信息直接发布给 channel ,而 channel 负责将信息发送给适当

Spring Data Redis—Pub/Sub(附Web项目源码) (转)

一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户端为订阅者(subscriber). 为了解耦发布者(publisher)和订阅者(subscriber)之间的关系,Redis 使用了 channel (频道)作为两者的中介 —— 发布者将信息直接发布给 channel ,而 channel 负责将信息发送给适当