您好,我有一个特定的任务需要在 EhCache 中解决,但我无法实现它。
我想建立一个“永久缓存”,它将在内存中保存少量项目供即将使用,其余部分将保留在磁盘上。我通常在多个线程中将数据写入缓存,并希望这些项目始终保留在磁盘上,以便即使在重新启动后也可以使用它们。
<cache name="eternal_cache" maxBytesLocalHeap="1%" maxBytesLocalDisk="2G"
eternal="false" timeToLiveSeconds="0"
timeToIdleSeconds="120" overflowToDisk="true"
diskPersistent="true" memoryStoreEvictionPolicy="LFU"
transactionalMode="off"/>
基本上我想要 EhCache 中的持久性功能,该功能是通过 定义的,但有大小限制,持久性不允许。
我遇到了这样的问题:通过我的配置,我的内存中有项目,但如果没有正确关闭,ehcache 管理器会丢失我的数据。我读到了有关flush()的内容,但它会将项目保留在磁盘上,但我至少希望内存中存在一些数据。
请有人告诉我如何根据我的需要配置缓存?
最佳答案
阅读官方手册后,我找到了解决方案。
只能使用 Ehcache 持久化策略进行持久化,但在企业版中是这样的。
在普通版本中,只能通过调用flush()
或shutdown()
来实现。
关于performance - EhCache数据到磁盘无需flush,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15437487/