关于redis:springboot整合redis的发布订阅

46次阅读

共计 785 个字符,预计需要花费 2 分钟才能阅读完成。

@Configuration
public class RedisMessageConfig {

@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                                               MessageListenerAdapter listenerAdapter){RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.addMessageListener(listenerAdapter,new PatternTopic("mytopic"));
    return container;
}

@Bean
public MessageListenerAdapter listenerAdapter() {return new MessageListenerAdapter(new Receiver(), "receiveMessage");
}

}

@Slf4j
public class Receiver {

public void receiveMessage(String message) {log.info("Received <" + message + ">");
}

}

其中 ”mytopic” 相当于 redis 外面的 channel 频道, 客户端始终在监听这个频道。
关上 redis 客户端, 忘 channel 发送音讯,留神返回值,返回值 0 代表没有监听者接管到音讯,如果接管到音讯则返回 1

客户端接管到公布的音讯

目前测试这个公布订阅遇到的坑点

  1. springboot 整合的 redis 监听器老是过一段时间的生效而接管不到音讯
  2. 由下面的起因 造成音讯失落

正文完
 0