原文:https://www.cnblogs.com/meetzy/p/7986956.html
redis不僅是一個非常強大的非關系型數據庫,它同時還擁有消息中間件的pub/sub功能,在spring boot中進行如下設置就可以使用redis的pub/sub功能:
1.創建redis監聽的設置類
@Configuration public class RedisSubListenerConfig { //初始化監聽器 @Bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.addMessageListener(listenerAdapter, new PatternTopic("這里是監聽的通道的名字")); return container; } //利用反射來創建監聽到消息之后的執行方法 @Bean MessageListenerAdapter listenerAdapter(RedisReceiver redisReceiver) { return new MessageListenerAdapter(redisReceiver, "receiveMessage"); }
//使用默認的工廠初始化redis操作模板 @Bean StringRedisTemplate template(RedisConnectionFactory connectionFactory) { return new StringRedisTemplate(connectionFactory); } }
2.創建監聽之后的receiver方法類
@Service public class RedisReceiver { @Autowired RedisService redisService; public void receiveMessage(String message) { //這里是收到通道的消息之后執行的方法 } }
3.使用reidsTemplate向通道發送消息
@Service public class RedisService { @Autowired private StringRedisTemplate stringRedisTemplate; //向通道發送消息的方法 public void sendChannelMess(String channel, String message) { stringRedisTemplate.convertAndSend(channel, message); } }