使用 Spring Integration RedisMessageStore 时是否可以设置 Redis key 过期时间

Is it possible to set Redis key expiration time when using Spring Integration RedisMessageStore

亲爱的,我想在 Spring 集成中使用 org.springframework.integration.redis.store.RedisMessageStore class 时自动过期 Redis 密钥。我看到一些与“过期回调”相关的方法,但我还找不到任何文档或示例。任何建议将不胜感激。

@Bean
public MessageStore redisMessageStore(LettuceConnectionFactory redisConnectionFactory) {
   RedisMessageStore store = new RedisMessageStore(redisConnectionFactory, "TEST_");
   return store;
}

Spring 引导:2.6.3,spring 集成和 spring-boot-starter-data-redis.

RedisMessageStore 没有任何过期功能。从技术上讲,它不能。这种存储的要点是在使用之前保留数据。将其视为持久存储。 RedisMetadataStore 基于 RedisProperties 对象,因此它也不能对特定条目使用过期功能。

您可能会谈论 MessageGroupStoreReaper,它实际上调用了 MessageGroupStore.expireMessageGroups(long timeout),但这已经是框架提供的人为 cross-store 实现。逻辑依赖于 group.getTimestamp()group.getLastModified()。所以,仍然没有那个 auto-expiration Redis 特性。

MessageGroupStoreReaper 是一个需要在您的应用程序中 运行 的过程:没有 Redis-specific。

在文档中查看更多信息:https://docs.spring.io/spring-integration/docs/current/reference/html/message-routing.html#reaper