Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.StreamOperations;
import org.springframework.stereotype.Service;
@Service
public class MessageQueueService {
private final StringRedisTemplate redisTemplate;
public MessageQueueService(StringRedisTemplate redisTemplate) {
this.redisTemplate = redisTemplate;
}
public void sendMessage(String streamKey, String message) {
StreamOperations<String, String, String> streamOps = redisTemplate.opsForStream();
streamOps.add(streamKey, message);
}
public void receiveMessages(String streamKey, Consumer<String> messageHandler) {
StreamOperations<String, String, String> streamOps = redisTemplate.opsForStream();
streamOps.read(StreamReadOptions.empty().count(2), streamRecord -> {
String message = streamRecord.getValue();
messageHandler.accept(message);
return null;
});
}
}
这段代码演示了如何在Spring Boot应用中使用StringRedisTemplate
操作Redis Streams。sendMessage
方法向指定的streamKey发送一条消息,而receiveMessages
方法接收消息并处理它们。这里的处理是通过传入的messageHandler
完成的,它是一个Consumer<String>
函数式接口的实例。这个简单的例子展示了如何使用Redis Streams作为消息队列来发送和接收消息,并在接收时进行消费处理。
评论已关闭