对于即将到来的项目,我将在 RAM 中保留大量数据(最多 10GB),但不作为缓存。是否可以在没有EH Cache的情况下使用 BigMemory(特别是 Go,即免费版),只是作为非垃圾收集的内存存储?我在文档中没有找到明确的答案,这些文档大多谈论与 EHCache 的典型集成。
谢谢你。
对于即将到来的项目,我将在 RAM 中保留大量数据(最多 10GB),但不作为缓存。是否可以在没有EH Cache的情况下使用 BigMemory(特别是 Go,即免费版),只是作为非垃圾收集的内存存储?我在文档中没有找到明确的答案,这些文档大多谈论与 EHCache 的典型集成。
谢谢你。
是的,EhCache是BigMemory的API :
BigMemory Go 目前使用 Ehcache 作为其面向用户的数据访问 API。
基本上,BigMemory 的设计方式是另一种存储层。您将事物存储在堆中,超出了您在堆外存储的内容(即大内存),然后超出了您在磁盘上存储的内容。这样做是有意义的,因为在我们想要存储大数据的 nosql 范式中;如果它们是键值形式,事情就会很好地工作。您可以选择存储任何类型的值,只需使其可序列化即可。至于您对“不作为缓存”的约束,很有可能配置缓存以使值不会从内存中被逐出。无论如何,如果您使用 BigMemory Go,您将获得 32GB 的限制,因此即使没有任何配置,存储 10GB 也不会触发任何驱逐算法。