如何在Redis存储库中配置和使用KeyExpirationEventMessageListener?

时间:2019-06-06 03:29:20

标签: spring-data-redis

我们的应用程序需要侦听Redis密钥过期事件并处理密钥中的数据。使用RedisMessageListenerContainer可以获取到期事件,但是这些事件仅包含过期的密钥,而不包含密钥值。因此,希望将KeyExpirationEventMessageListener和Redis存储库一起使用。

但是无法配置KeyExpirationEventMessageListener,并希望对此提供一些指导。

1 个答案:

答案 0 :(得分:0)

您需要做的就是为ApplicationListener注册一个。 RedisKeyExpiredEvent

@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP)
public class Config {

    @Bean
    ApplicationListener<RedisKeyExpiredEvent<Person>> eventListener() {
        return event -> {
            System.out.println(String.format("Received expire event for key=%s with value %s.",
                    new String(event.getSource()), event.getValue()));
        };
    }
}

您可以找到完整的示例here

相关问题