Spring Boot中使用redis的發布/訂閱模式


原文: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);
    }
}
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM