[英]How to configure Apache Ignite cache with multiple expiry policies
例如,我要使用以下两个到期策略配置缓存:
示例代码如下(Apache Ignite版本1.5.0.final):
public IgniteCache<String, Object> getOrCreateCache(String cacheName) {
Ignite ignite = Ignition.ignite();
CacheConfiguration<String, Object> cacheCfg = new CacheConfiguration<String, Object>(cacheName);
cacheCfg.setExpiryPolicyFactory(TouchedExpiryPolicy.factoryOf(new Duration(TimeUnit.SECONDS, 10)));
cacheCfg.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.SECONDS, 30)));
IgniteCache<String, Object> igniteCache = ignite.getOrCreateCache(cacheCfg);
return igniteCache;
}
问题是,第二个过期策略将取代第一个过期策略。 想知道是否有什么方法可以配置Ignite缓存,以便该缓存可以同时满足两个到期策略? 谢谢。
顺便说一下,在EhCache中,我可以通过以下方式配置缓存来实现相同的目的:
<cache name="my-cache-name" ...
timeToIdleSeconds="10" timeToLiveSeconds="30"
...>
</cache>
参考文献:
回答一般的JCache ExpiryPolicy,也许Apache Ignite中还有其他选项。
TouchedExpiryPolicy
使用相同的持续时间进行创建和更新。
您可以通过将ExpiryPolicy
子类化来设置单个时间。
注意逻辑含义。 设置访问后10秒过期和创建后30秒设置为例如:
可能您想实现一些不同的目标。 因此,答案是:不能将TTL和TTI混合使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.