Redis失效key监听

pom 采用 spring 自带的 data-redis

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

初始化监听容器

@Configuration
public class RedisListenerConfig {
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }
}

消息到达后,开启监听业务,处理相关监听数据

@Slf4j
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    @Autowired
    private OrderService orderService;

    @Override
    public void onMessage(Message message, byte[] pattern) {
        log.info("onPMessageinfo开始监听:{}", "pattern = [" + pattern + "],  message = [" + message + "]");
        //收到消息 key的键值,处理过期提醒
        String orderId = message.toString();
        //根据key键值判断实现自己的业务逻辑     

        log.debug("onPMessageinfo结束监听监听:{}", "pattern = [" + pattern + "],  message = [" + message + "]");
    }
}
注意:若应用部署在多台服务器,监听的时候需要指定一台服务器来实现对应的业务逻辑处理,否则会执行多次