当我将对象(条目)放入缓存时,spring-data-gemfire中是否可以为每个条目设置TTL?

时间:2019-07-11 17:38:56

标签: spring-boot gemfire spring-data-gemfire geode

每当我将GemFire缓存中的每个对象放入缓存时,我都希望为其设置TTL。缓存中某个条目(对象)的TTL可以彼此不同。可以将Spring Data用于Pivotal GemFire吗?

2 个答案:

答案 0 :(得分:0)

这篇stackoverflow帖子中有一些如何执行此操作的示例-

ModelState

基本上,您可以为区域配置自己的CustomExpiry,而不是为每个条目返回不同的ttl。

答案 1 :(得分:0)

不清楚您要问什么。

如丹在对本文的回答中所述,您可以为整个区域设置TTL,这将应用于所有条目。

或者,如果您确实有特殊需要,则可以使用SDG Expiration批注配置(如此处所述)为每个类类型设置TTL:

https://docs.spring.io/spring-data/gemfire/docs/current/reference/html/#bootstrap:region:expiration:annotation

但是,如果您的区域仅存储一种类型的对象(例如Customer.class),则建议在区域上设置TTL。

尽管,如果您具有一些复杂的对象层次结构,则Expiration注释支持可能对您的UC很有用。

  

注意:SDG中的Expiration注释支持实际上是使用SDG提供的CustomExpiry实现来实现的,该实现会内省对象的类类型,以便根据注释确定该对象的过期策略(无论是TTL还是TTI)。