使用java springboot 使用 Redis 作为消息队列

使用 Redis 作为消息队列

Redis 还可以用作消息队列,特别是通过其发布/订阅(Pub/Sub)机制。你可以使用 RedisTemplateconvertAndSend 方法发送消息,并使用 @RedisListener 注解监听消息。

发送消息
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

@Service
public class MessagePublisher {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    public void publishMessage(String channel, String message) {
        redisTemplate.convertAndSend(channel, message);
    }
}
监听消息
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.stereotype.Service;

@Service
public class MessageSubscriber {

    @Autowired
    private RedisMessageListenerContainer redisContainer;

    public void subscribeToChannel(String channel) {
        ChannelTopic topic = new ChannelTopic(channel);
        redisContainer.addMessageListener((message, pattern) -> {
            System.out.println("Received message: " + message.toString());
        }, topic);
    }
}
相关推荐
悠悠:)19 分钟前
前端 图片上鼠标画矩形框,标注文字,任意删除
前端·javascript·vue.js·css3·html5
Au_ust22 分钟前
js:事件流
开发语言·前端·javascript
猫猫村晨总26 分钟前
前端图像处理实战: 基于Web Worker和SIMD优化实现图像转灰度功能
前端·图像处理·vue3·canvas·web worker
PorkCanteen27 分钟前
el-tree拖拽光标错位问题
前端·javascript·elementui·vue
_未知_开摆29 分钟前
el-table-fixed滚动条被遮挡导致滚动条无法拖动
前端·javascript·vue.js
心灵的制造商29 分钟前
Flex布局的三个属性
前端·javascript·vue.js
猿如意29 分钟前
el-select下拉框在弹框里面错位
前端·javascript·vue.js
橘哥哥29 分钟前
前端通过后端返回的数据流下载文件
开发语言·前端·javascript
m0_5287238131 分钟前
部署项目添加工程名的步骤
前端·javascript·vue.js
℡52Hz★34 分钟前
前端如何处理后端传入的复杂数据格式
前端