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

How to configure and use KeyExpirationEventMessageListener with Redis Repositories?

我们的应用需要监听Redis key的过期事件,并对key中的数据进行处理。使用 RedisMessageListenerContainer 我可以获得过期事件,但这些事件仅包含过期键而不包含键值。因此想将 KeyExpirationEventMessageListener 与 Redis Repository 一起使用。

但我无法配置 KeyExpirationEventMessageListener,因此需要一些指导。

您需要做的就是为例如注册一个ApplicationListenerRedisKeyExpiredEvent.

@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