在 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
:如果 CacheManager
或 UserManagedCache
已使用 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}
.
在 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
:如果CacheManager
或UserManagedCache
已使用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}
.