我正在尝试配置Ehcache(版本2.5),以免永远忘记项目。 Here是我最初的尝试,但apparently Ehcache会试图通过驱逐我自己来保护自己,如果它没有钥匙的空间。
在应用程序运行时,有没有办法让我配置Ehcache(免费版)来真正存储元素?如果Ehcache可能会丢失元素(不告诉我!)那么我就不能真正将它用于我的目的。请注意,我在其他示例中使用了更多的堆空间;我只是设置它以确保它尽早开始写入磁盘。
答案 0 :(得分:2)
使用固定:请参阅http://ehcache.org/documentation/configuration/data-life#pinning-data并使用inCache固定磁盘存储。 虽然我没有真正得到你期望的ehcache在这里做的事情。如果你想不惜一切代价避免驱逐,而maxBytesOnHeap似乎是一个坏主意。指定maxBytesOnHeap的重点是保护您免受OOME的攻击。使用堆的Gigs可能会让我觉得更合理......但基本上,当使用DiskStore时,你(和ehcache)必须考虑密钥集,它存放在内存中...所以有一个maxBytesOnHeap> keySet的大小有助于将热备份保留在整个密钥集旁边的堆上。希望这可以帮助!