如何配置和使用 KeyExpirationEventMessageListener 与 Redis 存储库?
How to configure and use KeyExpirationEventMessageListener with Redis Repositories?
我们的应用需要监听Redis key的过期事件,并对key中的数据进行处理。使用 RedisMessageListenerContainer 我可以获得过期事件,但这些事件仅包含过期键而不包含键值。因此想将 KeyExpirationEventMessageListener 与 Redis Repository 一起使用。
但我无法配置 KeyExpirationEventMessageListener,因此需要一些指导。
您需要做的就是为例如注册一个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。
我们的应用需要监听Redis key的过期事件,并对key中的数据进行处理。使用 RedisMessageListenerContainer 我可以获得过期事件,但这些事件仅包含过期键而不包含键值。因此想将 KeyExpirationEventMessageListener 与 Redis Repository 一起使用。
但我无法配置 KeyExpirationEventMessageListener,因此需要一些指导。
您需要做的就是为例如注册一个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。