我们的应用程序需要侦听Redis密钥过期事件并处理密钥中的数据。使用RedisMessageListenerContainer可以获取到期事件,但是这些事件仅包含过期的密钥,而不包含密钥值。因此,希望将KeyExpirationEventMessageListener和Redis存储库一起使用。
但是无法配置KeyExpirationEventMessageListener,并希望对此提供一些指导。
答案 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。