【发布时间】:2010-09-18 20:11:58
【问题描述】:
问题
我正在寻找 Java 内存中对象缓存 API。有什么建议吗?您过去使用过哪些解决方案?
当前
现在,我只是在使用地图:
Map cache = new HashMap<String, Object>();
cache.put("key", value);
要求
我需要扩展缓存以包含以下基本功能:
- 最大尺寸
- 生存时间
但是,我不需要更复杂的功能,例如:
- 从多个进程访问(缓存服务器)
- 持久性(到磁盘)
建议
内存缓存:
- Guava CacheBuilder - 积极开发。看到这个presentation。
- LRUMap - 通过 API 配置。没有 TTL。不是为缓存而设计的。
- whirlycache - XML 配置。邮件列表。最后更新于 2006 年。
- cache4j - XML 配置。俄语文档。最后更新于 2006 年。
企业缓存:
【问题讨论】:
-
您能否编辑 Suggestions In-Memory 缓存部分以包含 Guava 缓存?我和你一样在寻找一个轻量级的缓存机制,发现了这个问题,但没有找到 Guava,因为它已经下降了。现在我使用了 guava 缓存包,它太棒了。
-
完成。 :-) 很高兴你喜欢它!
-
也许您还想考虑添加相对较新的cache2k。在他们的benchmarks page 上,据说它的性能比 ehcache 和 Guava 好得多。