赞
踩
Redis发布订阅(Publish / Subscribe)模式是Redis提供的一种消息通信方式,它基于消息中间件的设计思想,实现了消息的生产者和消费者的解耦。Redis 发布订阅模式的工作原理类似于消息队列,不同之处在于 Redis 发布订阅模式是一种多对多的消息通信方式,一个消息可以被多个消费者接收。
在Redis发布订阅模式中,消息的生产者将消息发布到指定的频道,而消费者则通过订阅对应的频道来接收消息。当消息生产者发布了一条消息到某个频道时,所有订阅了该频道的消费者都可以接收到这条消息。
Redis发布订阅模式包括两个核心的命令:PUBLISH 和 SUBSCRIBE。PUBLISH 命令用于向指定的频道发布一条消息,而 SUBSCRIBE 命令则用于订阅指定的频道。
在 Redis 发布订阅模式中,Redis 服务器起到了一个消息中心的作用,它负责维护订阅者列表和消息发布、转发的机制。同时,Redis提供了一系列API,使得客户端可以方便地进行订阅和发布操作。
@Component
public class RedisMessageListener implements MessageListener {
@Override
public void onMessage(Message message, byte[] pattern) {
String s = new String(message.getBody());
System.out.println("收到消息:" + s);
}
}
@Configuration public class RedisMessageConfig { /** * 消息监听器适配器 * @return org.springframework.data.redis.listener.adapter.MessageListenerAdapter */ @Bean public MessageListenerAdapter listenerAdapter(RedisMessageListener receiver) { //这个地方是给 messageListenerAdapter 传入一个消息接受的处理器,利用反射的方法调用“onMessage” return new MessageListenerAdapter(receiver, "onMessage"); } /** * redis消息监听器容器 * @return org.springframework.data.redis.listener.RedisMessageListenerContainer */ @Bean public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); // 订阅了一个叫 my-channel 的频道 container.addMessageListener(listenerAdapter, new PatternTopic("my-channel")); // 这个container 可以添加多个 messageListener return container; } }
@GetMapping(value = "/testRedis")
public void testRedis() {
redisTemplate.convertAndSend("my-channel", JsonUtil.toJsonStr(new Student(1L, "张三")));
}
点击下载 (访问密码: 2632)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。