我已使用Ignite
缓存。通过弹簧似乎工作正常。
问题1:如果服务器重新启动缓存会丢失数据并且无法修复。
问题1的解决方案:使用db来保留所有缓存的数据。
问题2:从db加载的每个元素的驱逐期应该不同。
问题2的解决方案:为每个元素配置缓存逐出期限
在点燃文档后,我可以将缓存的驱逐期配置为常规
igniteCacheConfig.setExpiryPolicyFactory(new ExpiryPolicyFactory(duration));
但我找不到如何以单独的方式为每个元素配置它。
我在解决方案第2期中需要帮助,或者如果有必要,我准备考虑更改第1期解决方案,如果它有助于更好地使用问题2的解决方案。
答案 0 :(得分:2)
您可以使用cache.withExpiryPolicy()获取 具有特定ExpiryPolicy的缓存包装器。 此策略将仅在此缓存包装器的操作期间使用。
IgniteCache<Object, Object> cache = cache.withExpiryPolicy(new
CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 5)));
您可以根据需要创建尽可能多的包装,并使用/ get / etc条目 它们。
以下是点燃用户列表
中描述的一些example