原文: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);
}
}

