通过 spring 点燃缓存。动态驱逐期持续时间

Ignite cache via spring. Dynamic eviction period duration

我使用了 Ignite 缓存。通过 spring.

似乎工作正常

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

问题 1 的解决方案:使用 db 持久化所有缓存数据。

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

问题 2 的解决方案:为每个元素配置缓存逐出周期持续时间???

按照 ignite 文档,我可以将缓存的逐出期配置为一般

igniteCacheConfig.setExpiryPolicyFactory(new ExpiryPolicyFactory(duration));

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

问题

我的问题 2 的解决方案需要帮助,或者如果有必要,我准备考虑更改问题 1 的解决方案: 如果它问题 2.

的解决方案有助于获得更好的方法

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

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

您可以根据需要创建任意数量的包装器,并使用 put/get/etc 条目 他们。

这里是 ignite 用户列表

中描述的一些example