使用 Ehcache 3,如果我有一个持久缓存,这是否意味着即使堆/堆外缓存已满,所有内容都将写入磁盘缓存?
即我有这个
PersistentCacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence(new File(Platform.getPlatformDatabaseFolder(), RELEASE_CACHE)))
.withCache(RELEASE_CACHE,
CacheConfigurationBuilder.newCacheConfigurationBuilder(
String.class,
String.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.heap(100, EntryUnit.ENTRIES)
.offheap(10, MemoryUnit.MB)
.disk(20, MemoryUnit.MB, true)))
.build();
所以我正在使用这个但我已经指定了一个磁盘缓存,因为通常内存缓存是不够的,我已经指定它是持久的,因为如果数据被写入磁盘,它可能对应用程序的后续运行很有用。
但是,有时应用程序的使用方式可能会导致堆/非堆未完全使用,因此我不希望应用程序仅仅因为我已将其标记为持久性而浪费时间将数据写入磁盘。毕竟我使用缓存的原因是为了提高性能。