如何为任何特定的缓存(NamedCache)设置逐出策略/每个缓存条目的到期时间。例如,我可能配置了两个缓存,但是希望只针对其中一个缓存设置基于时间的驱逐策略。
根据下面的配置文件,我要求只为"TEST2CACHE“缓存设置驱逐,例如,在1天后过期。怎么做?
任何指示都会有帮助。谢谢。
这里是我的一致性配置xml文件的示例-
<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>发布于 2015-12-27 15:56:33
对于两个缓存,您都使用相同的“MyDistributedCache”模式,因此,如果要添加驱逐策略,则会影响到这两个缓存:
示例:
<local-scheme>
<unit-calculator>BINARY</unit-calculator>
<expiry-delay>10d</expiry-delay>
<flush-delay>1d</flush-delay>
</local-scheme>我敢打赌,您不想创建两个几乎相同的方案,所以解决方案可以是使用Scheme继承 与一致性文件的链接
至少您可以重用缓存的部分。
另一个值得检查的选项是在API中使用过期,但我不确定一致性是否真的会清除缓存。
NamedCache.put(Object oKey,
Object oValue,
long cMillis)请参阅JavaDoc
我建议使用不同的缓存方案。
https://stackoverflow.com/questions/34438954
复制相似问题