【问题标题】:Ignite cache via spring. Dynamic eviction period duration通过 spring 点燃缓存。动态驱逐期持续时间
【发布时间】:2017-06-12 08:24:24
【问题描述】:

我使用了Ignite 缓存。它似乎在春天工作得很好。

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

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

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

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

根据 ignite 文档,我可以将缓存的驱逐期配置为一般

igniteCacheConfig.setExpiryPolicyFactory(new ExpiryPolicyFactory(duration));

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

问题

我在问题 2 的解决方案方面需要帮助,或者如果有必要,我准备考虑更改问题 1 的解决方案:如果它有助于获得更好的解决方法 问题 2 的解决方案

【问题讨论】:

    标签: java spring caching duration ignite


    【解决方案1】:

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

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

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

    这里有一些 example 描述在 ignite 用户列表中

    【讨论】:

    • 缓存配置如何帮助解决问题eviction period for each element loaded from db should be different
    • 如何将数据从数据库加载到缓存?您可以按部分加载条目,使用 withExpiryPolicy() 方法动态更改到期策略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2018-12-16
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多