返回顶部
首页 > 资讯 > 精选 >如何利用redis做消息队列
  • 330
分享到

如何利用redis做消息队列

2024-04-02 19:04:59 330人浏览 独家记忆
摘要

利用Redis做消息队列的示例:生产者模拟程序,代码:package scheduleTest; import java.util.Random; import java.util.UUID; import redis.clients.je

如何利用redis做消息队列

利用Redis消息队列的示例:

生产者模拟程序,代码:

package scheduleTest;

import java.util.Random;

import java.util.UUID;

import redis.clients.jedis.Jedis;

public class TaskProducer implements Runnable{

Jedis jedis = new Jedis("120.55.195.177",6379);

public void run() {

Random random = new Random();

while(true){

try{

Thread.sleep(random.nextInt(600) + 600);

// 模拟生成一个任务

UUID taskid = UUID.randomUUID();

//将任务插入任务队列:task-queue

jedis.lpush("task-queue", taskid.toString());

System.out.println("插入了一个新的任务: " + taskid);

}catch(Exception e){

e.printStackTrace();

}

}

}

}

消费者模拟程序,代码:

 

package scheduleTest;

import java.util.Random;

import redis.clients.jedis.Jedis;

public class TaskConsumer implements Runnable {

Jedis jedis = new Jedis("120.55.195.177",6379);

public void run() {

Random random = new Random();

while(true){

//从任务队列"task-queue"中获取一个任务,并将该任务放入暂存队列"tmp-queue"

String taskid = jedis.rpoplpush("task-queue", "tmp-queue");

// 处理任务----纯属业务逻辑,模拟一下:睡觉

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

//模拟成功和失败的偶然现象

if(random.nextInt(13) % 7 == 0){// 模拟失败的情况,概率为2/13

//将本次处理失败的任务从暂存队列"tmp-queue"中,弹回任务队列"task-queue"

jedis.rpoplpush("tmp-queue", "task-queue");

System.out.println(taskid + "处理失败,被弹回任务队列");

} else {// 模拟成功的情况

// 将本次任务从暂存队列"tmp-queue"中清除

jedis.rpop("tmp-queue");

System.out.println(taskid+"处理成功,被清除");

}

}

}

}

调度主程序,代码:

package scheduleTest;

public class TaskShedulerSystem {

public static void main(String[] args) throws Exception {

// 启动一个生产者线程,模拟任务的产生

new Thread(new TaskProducer()).start();

Thread.sleep(15000);

//启动一个线程者线程,模拟任务的处理

new Thread(new TaskConsumer()).start();

//主线程休眠

Thread.sleep(Long.MAX_VALUE);

}

}

--结束END--

本文标题: 如何利用redis做消息队列

本文链接: https://lsjlt.com/news/115853.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何利用redis做消息队列
    利用redis做消息队列的示例:生产者模拟程序,代码:package scheduleTest; import java.util.Random; import java.util.UUID; import redis.clients.je...
    99+
    2024-04-02
  • redis怎么做消息队列
    redis 消息队列 Redis 是一个内存数据库,兼具消息代理的功能,可以用来构建高效的消息队列系统。 如何使用 Redis 构建消息队列 要使用 Redis 构建消息队列,需要执行以...
    99+
    2024-05-21
    python redis 数据丢失 持久化存储
  • 详解Redis Stream做消息队列
    目录ListPub/subStreamConsumer Grouplast_delivered_idpending_idscurdpending_ids如何避免消息丢失嵌入SpringBoot注册Redis s...
    99+
    2024-04-02
  • redis能不能用来做消息队列
    这篇文章主要介绍了redis能不能用来做消息队列,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。应用场景:例如秒杀。瞬时大量写入订单到数据库,导致...
    99+
    2024-04-02
  • redis中怎么用list做消息队列
    本文小编为大家详细介绍“redis中怎么用list做消息队列”,内容详细,步骤清晰,细节处理妥当,希望这篇“redis中怎么用list做消息队列”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。leftPush消息入...
    99+
    2023-06-29
  • Redis中如何实现消息队列和延时消息队列
    这篇文章将为大家详细讲解有关Redis中如何实现消息队列和延时消息队列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。list的几个命令lpush (left push)由...
    99+
    2024-04-02
  • Redis中如何使用消息队列
    这篇文章主要介绍了Redis中如何使用消息队列,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说到消息队列中间件,我们都会想到RabbitMQ...
    99+
    2024-04-02
  • 如何监听redis消息队列
    监听redis消息队列的示例:springBoot实现redis发布式监听消息队列,定时器监听不同功能的消息,代码:import org.springframework.context.annotation.Bean;import org....
    99+
    2024-04-02
  • redis消息队列如何延时
    redis消息队列延时的示例:延时队列可通过zset来实现,消息的处理时间作为score,最后通过多线程轮询获取到期的score任务即可,代码:public class DelayQueue {static class TaskItem {...
    99+
    2024-04-02
  • redis如何实现消息队列
    Redis可以实现消息队列的功能,常用的实现方式是使用Redis的List数据结构来存储消息队列中的消息。具体实现步骤如下: 将...
    99+
    2024-04-22
    Redis
  • redis做消息队列有什么缺点
    redis做消息队列的缺点:基于List的LPUSH+BRPOP的消息队列缺点:做消费确认ACK比较麻烦。不能做广播模式,例如典型的Pub/Discribe模式。不能重复消费,一旦消费就会被删除。不支持分组消费。...
    99+
    2024-04-02
  • 如何使用redis实现消息队列
    使用redis实现消息队列的示例:redis的pubsub功能实现发布订阅模式,代码:import redisclass Task(object):def __init__(self):self.rcon = redis.StrictRed...
    99+
    2024-04-02
  • redis用list做消息队列的实现示例
    目录生产消息服务消费消息服务,定时任务日志测试leftPush消息入队,rightPop对应,消息出队。 rightPop(RedisConstant.MQ_LIST, 0L, Ti...
    99+
    2024-04-02
  • java如何监听redis消息队列
    java监听redis消息队列的方法:可以使用springBoot实现redis发布式监听消息队列,定时器监听不同功能的消息。java监听redis消息队列的示例:springBoot实现redis发布式监听消息队列,定时器监听不同功能的消...
    99+
    2024-04-02
  • 如何利用Redis和Perl 6开发消息队列功能
    如何利用Redis和Perl 6开发消息队列功能引言:在现代应用程序开发中,消息队列是一个非常重要的组件。它可以实现应用程序之间的解耦,提高系统的可扩展性和性能,并帮助实现异步处理。在本文中,我们将探讨如何利用Redis和Perl 6编程语...
    99+
    2023-10-22
    redis Perl 消息队列
  • redis中的消息队列
    这期内容当中的小编将会给大家带来有关redis中的消息队列介绍,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、认识消息队列1.1 消息队列概念“消息”是在两台计算机间传送的数据单位。...
    99+
    2022-11-30
    redis 消息队列 edi
  • redis消息队列丢失如何解决
    要解决Redis消息队列丢失的问题,可以考虑以下几点:1. 持久化存储:Redis提供了持久化存储的功能,可以将消息在内存中的数据持...
    99+
    2023-09-04
    redis
  • Redis如何实现消息队列功能
    Redis如何实现消息队列功能随着互联网的发展,消息队列在分布式系统中变得越来越重要。消息队列允许不同的应用程序之间通过异步通信来传递和处理消息,提高了系统的可伸缩性和可靠性。Redis作为一款快速、可靠、灵活的内存数据库,也可以用来实现消...
    99+
    2023-11-07
    redis 实现 消息队列
  • 详解RedisStream做消息队列
    目录ListPub/subStreamConsumer Grouplast_delivered_idpending_idscurdpending_ids如何避免消息丢失嵌入...
    99+
    2024-04-02
  • 怎么使用redis消息队列
    要使用Redis作为消息队列,你需要按照以下步骤进行操作:1. 安装并启动Redis服务。2. 在你的应用程序中引入Redis的客户...
    99+
    2023-08-24
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作