1

我想问是否有人知道具有以下属性的 JAVA 缓存框架:

  • 我有大数据文件(2mb 到 5gb),如果内存增加,我需要对其进行序列化,并根据需要对其进行反序列化。

  • 最近最近使用的策略

  • 我想自己处理序列化/反序列化,这意味着我只想从框架中知道什么时候必须序列化。反序列化是根据用户需求进行的。

  • 我想要最小的 IO,因为我有大数据

如果对此没有直接的框架,也许您可​​以向我指出启发式或任何其他策略?SoftReferences/WeakReference 作为解决方案不起作用,因为我无法序列化,即使我在它们被垃圾收集时注意到它们(用于序列化的内存更少或更糟:文件在序列化之前消失)。

谢谢!

4

4 回答 4

4

(免责声明 - 我为 GigaSpaces 工作)

GigaSpaces XAP DataGrid提供了一个完整的面向对象的 Java 缓存解决方案。

  • 存储类型——不同的存储类型可以分配给数据的不同部分。XAP 还支持外部数据源集成,例如 DB 和NoSQL,以允许卸载大数据。
  • 驱逐策略- 可以设置不同的驱逐策略,包括 LRU
  • 存储类型使用 Java 序列化,这样可以实现 Externalizable 并获得完全控制。
  • XAP 通常在使用网络资源和 IO 方面非常有效。
于 2012-09-09T10:57:34.127 回答
4

试试Ehcache。Ehcache 是一个开源的、基于标准的缓存,用于提高性能、卸载数据库和简化可扩展性。Ehcache 功能强大、经过验证且功能齐全,这使其成为使用最广泛的基于 Java 的缓存

于 2012-09-07T13:56:39.177 回答
1

JCache API 处于公开草案中(截至 2013 年 8 月),并将附带一个开源参考实现 (RI)。所有主要的缓存供应商(例如 Oracle Coherence、ehCache)和开源项目都将为其实现提供 JCache 绑定,因此值得一看。

见:https ://github.com/jsr107

更新(2014 年 7 月 11 日)- JCache API 已完成并在几个月前作为标准发布。

如果您需要 JCache 的实现,我知道今天唯一可用的是 Oracle Coherence;请参阅:http ://docs.oracle.com/middleware/1213/coherence/develop-applications/jcache_part.htm

为了全面披露,我在 Oracle 工作。这篇文章中表达的观点和观点是我自己的,并不一定反映我雇主的观点或观点。

于 2013-08-11T22:30:55.807 回答
0

检查Redis - Redis 是一个开源、BSD 许可的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序集合。更多详情请点击Redis

于 2013-12-17T08:40:15.390 回答