redis做消息列队

#encoding:utf8

import time
import redis

conn = redis.Redis(‘localhost‘,db=1)    #连接诶数据库并使用数据库1
def insert_data():
    while True:
        conn.lpush(‘key‘,‘value‘)        向key中增加值
        time.sleep(3)

def process_data():
    task = conn.blpop("key",0)[1]    #弹出列表中第一个值
    print task    

insert_data()
process_data()

  

时间: 2024-10-05 23:17:13

redis做消息列队的相关文章

Redis 做消息队列

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式.利用redis这两种场景的消息队列都能够实现.定义: 生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息:即对于每个消息只能被最多一个消费者拥有. 发布者订阅者模式:发布者生产消息放到队列里,多个监听队列的消费者都会收到同一份消息:即正常情况下每个消费者收到的消息应该都是一样的. 那么如此多的MQ产品,为什么要使用redis作消息队列呢?以下附上一份总结了别人的一些r

Redis做消息队列

1.连接从Redis中获取日志文件并存储到ES中 [[email protected] ~]# vim /usr/local/logstash/config/redis.conf input {     beats {     port => "5044"      }     redis {     data_type => "list"         key => "220"         host => &quo

Php +Redis 做消息队列

1. 连接Redis $redis = new Redis(); $redis->connect("127.0.0.1", "6379"); //php客户端设置的ip及端口 2. Redis入队列 $redis->lPush("GPS_LIST", data); 3.Redis出队列 - 先进先出lPop 先进后出rPop $redis->rPop(("GPS_LIST");    

PHP + Redis 实现消息队列

Redis做消息队列的好处在于它的轻量级,高并发,延迟敏感,应用场景有 即时数据分析.秒杀计数器.缓存等 Redis做消息队列待解决的问题: 1.消息的可靠性: 没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理.生产者只管向队列中插入数据,不管消费者是否成功消费. 2.消费者挂掉消息不会丢失,但是需要重新触发一下消费者,才能够继续消费消息. 代码如下: lib.php 是工具文件,里面有数据库的连接.Redis的连接: <?php /** * 获取数据库连接 * *

springboot2.0+redis实现消息队列+redis做缓存+mysql

本博客仅供参考,本人实现没有问题. 1.环境 先安装redis.mysql 2.springboot2.0的项目搭建(请自行完成),本人是maven项目,因此只需配置,获取相应的jar包,配置贴出. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifact

用redis实现消息队列

为什么需要消息队列 系统中引入消息队列机制是对系统一个非常大的改善.例如一个web系统中,用户做了某项操作后需要发送邮件通知到用户邮箱中.你可以使用同步方式让用户等待邮件发送完成后反馈给用户,但是这样可能会因为网络的不确定性造成用户长时间的等待从而影响用户体验. 有些场景下是不可能使用同步方式等待完成的,那些需要后台花费大量时间的操作.例如极端例子,一个在线编译系统任务,后台编译完成需要30分钟.这种场景的设计不可能同步等待后在回馈,必须是先反馈用户随后异步处理完成,再等待处理完成后根据情况再此

Java利用Redis实现消息队列

应用场景 为什么要用redis?二进制存储.java序列化传输.IO连接数高.连接频繁 一.序列化 这里编写了一个java序列化的工具,主要是将对象转化为byte数组,和根据byte数组反序列化成java对象; 主要是用到了ByteArrayOutputStream和ByteArrayInputStream; 注意:每个需要序列化的对象都要实现Serializable接口; 其代码如下: 1 package Utils; 2 import java.io.*; 3 /** 4 * Created

基于Redis的消息订阅/发布

在工业生产设计中,我们往往需要实现一个基于消息订阅的模式,用来对非定时的的消息进行监听订阅. 这种设计模式在 总线设计模式中得到体现.微软以前的WCF中实现了服务总线 ServiceBus的设计模式.然并卵.WCF已经好像是上个世纪的产物................ 基于事件订阅的模式,比如 EventBus类的组件产品.但是往往设计比较复杂. 如果依赖于 Redis做事件消息推送.那就大大简化了这种设计模式,而且性能也比较客观. Redis在 2.0之后的版本中 实现了 事件推送的  pu

RabbitMQ与Redis做队列比较

本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比 具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然. Redis 是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库