1

我正在使用 ehcache 将数据保存在磁盘上以供 JVM 重新启动。由于数据非常大,我想试试 BigMemory Go 产品。但在他们的文档中,我没有找到任何关于磁盘配置(最大大小、路径)的提及。使用 ehcache 我的配置如下所示:

PersistentCacheManager persistentCacheManager = 
newCacheManagerBuilder()
.with(persistence(new File("path_to_cache_dest"))
.withCache("myType"), newCacheConfigurationBuilder(String.class, String.class, newResourcePoolsBuilder()
.disk(2, MemoryUnit.GB, true))
.build(true);

BigMemory Go 中的等价物是什么?BigMemory 中处理磁盘持久性的对象是什么?一个代码示例会很棒。

4

1 回答 1

2

BigMemory Go 是基于 Ehcache 2.x 的商业产品。因此它与 Ehcache 3.x 无关,因为它使用不同的代码库和不同的 API。

因此,您需要为磁盘持久性配置 Ehcache 2.x,然后使用商业版本运行该配置,然后使用商业磁盘存储:

new CacheManager(new Configuration()
    .cache(new CacheConfiguration("aCache", 10000)
        .persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.LOCALRESTARTABLE))    
        .maxBytesLocalDisk(2, MemoryUnit.GB)
        .timeToLiveSeconds(1000)
        .timeToLiveSeconds(360))
    .name("testDiskStoreSize")
    .diskStore(new DiskStoreConfiguration().path("java.io.tmpdir/testDiskStoreSize")));

请注意,如果您要替换Strategy.LOCALRESTARTABLEStrategy.LOCALTEMPSWAP. 您只会失去防崩溃的可重启性并使用不同的磁盘存储模型。

于 2017-10-18T01:05:54.143 回答