通过 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
我使用了 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