redis实现队列

本文介绍了如何使用 Redis 实现简单的消息队列,并探讨了延时队列的需求。通过 Java 代码展示了如何配置 RedisTemplate 和监听器容器,以及消费者类的实现。在延时队列部分,提出利用有序集合存储延迟任务,根据执行时间判断是否立即处理。此外,还提供了一份Java开发者的学习资源。
摘要由CSDN通过智能技术生成

1.简介

使用pub/pub/sub主题订阅者模式,可以实现1:N的消息队列。

缺点:在消费者下线的情况下,生产的消息会丢失。此场景,建议用MQ。

2.代码

被请求的接口(被订阅者),使用redis队列,放于队列中。

package com.airboot.bootdemo.controller;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping(“/SentRedisController”)

public class SentRedisController {

@Autowired

private RedisTemplate redisTemplate;

/**

  • redis生产者测试

  • @param data

  • @return

*/

@GetMapping(“/send1”)

String send1(String data) {

redisTemplate.convertAndSend(“testkafka”, data);

return “success”;

}

/**

  • redis生产者测试

  • @param data

  • @return

*/

@GetMapping(“/send2”)

String send2(String data) {

redisTemplate.convertAndSend(“testkafka1”, data);

return “success”;

}

}

配置监听器。监听队列。

package com.airboot.bootdemo.config;

import com.airboot.bootdemo.controller.RedisSubscriber;

import com.airboot.bootdemo.controller.RedisSubscriberTwo;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值