在 EHCache 3.x 中将持久化策略设置为 "localTempSwap"

Set persistence strategy to "localTempSwap" in EHCache 3.x

在 EHCache 3.1.3 中缺少用于设置持久性策略的 2.x API,例如枚举 net.sf.ehcache.config.PersistenceConfiguration.Strategy 不再存在于库中。

我已经阅读了文档(针对 3.1 版)。但我找不到任何关于如何配置持久性策略的信息,所以我想在版本 3.x 中是一个不同的概念,或者该功能可能已被删除,但听起来有点奇怪。

谁能告诉我如何配置 EHCache 3.1.x 来管理像 Strategy.LOCALTEMPSWAP 这样的持久性?如果不可能,是否有任何替代方法或解决方法?

在Ehcache中配置磁盘层时3.x有一个布尔值表示持久化:

  • true:如果 CacheManagerUserManagedCache 已使用 close 方法之一正确关闭,则数据将在 JVM 重新启动之间保留,
  • false:尽管在缓存操作期间使用了磁盘,但在 JVM 重新启动之间不会保留数据。请注意,这是默认值。

用法取决于您的配置来源:

  • 在 Java 中使用 ResourcePoolsBuilder.disk(long size, MemoryUnit unit, boolean persistent) 和上面定义的布尔值,
  • 在 XML 中再次使用 <ehcache:disk unit="GB" persistent="true">100</ehcache:disk> 和上面定义的布尔标志。

因此,为了在 2.x 中实现 Strategy.LOCALTEMPSWAP 的等效效果,您可以使用默认值。

请注意,从 3.1.3 开始,您可以在 XML 中使用系统 属性 来配置数据文件夹位置,如 ${java.tmp.dir}.