首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个Namedcache的一致性分布式缓存到期时间

每个Namedcache的一致性分布式缓存到期时间
EN

Stack Overflow用户
提问于 2015-12-23 15:33:25
回答 1查看 817关注 0票数 1

如何为任何特定的缓存(NamedCache)设置逐出策略/每个缓存条目的到期时间。例如,我可能配置了两个缓存,但是希望只针对其中一个缓存设置基于时间的驱逐策略。

根据下面的配置文件,我要求只为"TEST2CACHE“缓存设置驱逐,例如,在1天后过期。怎么做?

任何指示都会有帮助。谢谢。

这里是我的一致性配置xml文件的示例-

代码语言:javascript
复制
    <cache-mapping>
        <cache-name>TEST1CACHE</cache-name>
        <scheme-name>MyDistributedCache</scheme-name>
    </cache-mapping>

    <!-- Application Configuration Cache -->
    <cache-mapping>
        <cache-name>TEST2CACHE</cache-name>
        <scheme-name>MyDistributedCache</scheme-name>
    </cache-mapping>

</caching-scheme-mapping>

<caching-schemes>
    <distributed-scheme>
        <scheme-name>MyDistributedCache</scheme-name>
        <service-name>MyDistributedCache</service-name>
        <lease-granularity>member</lease-granularity>
        <backing-map-scheme>
            <read-write-backing-map-scheme>
                <internal-cache-scheme>
                    <local-scheme>
                        <unit-calculator>BINARY</unit-calculator>
                    </local-scheme>
                </internal-cache-scheme>
                <cachestore-scheme>
                    <class-scheme>
                        <class-name>spring-bean:myCacheStore</class-name>
                        <init-params>
                            <init-param>
                                <param-name>setEntityName</param-name>
                                <param-value>{cache-name}</param-value>
                            </init-param>
                        </init-params>
                    </class-scheme>
                </cachestore-scheme>
            </read-write-backing-map-scheme>
        </backing-map-scheme>
        <autostart>true</autostart>
    </distributed-scheme>
</caching-schemes>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 15:56:33

对于两个缓存,您都使用相同的“MyDistributedCache”模式,因此,如果要添加驱逐策略,则会影响到这两个缓存:

示例:

代码语言:javascript
复制
<local-scheme>
  <unit-calculator>BINARY</unit-calculator>
  <expiry-delay>10d</expiry-delay>
  <flush-delay>1d</flush-delay>
</local-scheme>

我敢打赌,您不想创建两个几乎相同的方案,所以解决方案可以是使用Scheme继承 与一致性文件的链接

至少您可以重用缓存的部分。

另一个值得检查的选项是在API中使用过期,但我不确定一致性是否真的会清除缓存。

代码语言:javascript
复制
NamedCache.put(Object oKey,
           Object oValue,
           long cMillis)

请参阅JavaDoc

我建议使用不同的缓存方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34438954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档