通过弹簧点亮缓存。动态驱逐期限

时间:2017-06-12 08:24:25

标签: java spring caching duration ignite

我已使用Ignite缓存。通过弹簧似乎工作正常。

问题1:如果服务器重新启动缓存会丢失数据并且无法修复。

问题1的解决方案:使用db来保留所有缓存的数据。

问题2:从db加载的每个元素的驱逐期应该不同。

问题2的解决方案:为每个元素配置缓存逐出期限

在点燃文档后,我可以将缓存的驱逐期配置为常规

igniteCacheConfig.setExpiryPolicyFactory(new ExpiryPolicyFactory(duration));

但我找不到如何以单独的方式为每个元素配置它。

问题

我在解决方案第2期中需要帮助,或者如果有必要,我准备考虑更改第1期解决方案,如果它有助于更​​好地使用问题2的解决方案

1 个答案:

答案 0 :(得分:2)

您可以使用cache.withExpiryPolicy()获取 具有特定ExpiryPolicy的缓存包装器。 此策略将仅在此缓存包装器的操作期间使用。

IgniteCache<Object, Object> cache = cache.withExpiryPolicy(new
CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 5)));

您可以根据需要创建尽可能多的包装,并使用/ get / etc条目 它们。

以下是点燃用户列表

中描述的一些example