有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何为磁盘持久性配置BigMemory?

我正在使用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中,处理磁盘持久性的对象是什么?一个代码示例就好了


共 (1) 个答案

  1. # 1 楼答案

    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.LOCALRESTARTABLE替换为Strategy.LOCALTEMPSWAP,上述方法在开源环境下仍然有效。您只会失去防崩溃的可重启性,而使用不同的磁盘存储模型