相关疑难解决方法(0)

轻量级Java对象缓存API

我正在寻找一个Java内存中对象缓存API.有什么建议?你过去使用过什么解决方案?

当前

现在,我只是使用地图:

Map cache = new HashMap<String, Object>();
cache.put("key", value);
Run Code Online (Sandbox Code Playgroud)

要求

我需要扩展缓存以包括以下基本功能:

  • 最大尺寸
  • 生存的时间

但是,我不需要更复杂的功能,如:

  • 从多个进程(缓存服务器)访问
  • 持久性(到磁盘)

建议

内存缓存:

  • Guava CacheBuilder - 积极开发.见这个演讲.
  • LRUMap - 通过API配置.没有TTL.不是专为缓存而构建的.
  • whirlycache - XML配置.邮件列表.上次更新2006.
  • cache4j - XML配置.俄文文件.上次更新2006.

企业缓存:

  • JCS - 属性配置.丰富的文档.
  • Ehcache - XML配置.丰富的文档.到目前为止谷歌最热门的点击率.

java caching

96
推荐指数
6
解决办法
7万
查看次数

Java ConcurrentHashMap优于HashMap性能吗?

我刚刚阅读了"清洁代码"一书,并发现了这一说法:

当Java年轻的时候,Doug Lea写了一本开创性的书[8] Java中的Concurrent Programming.随着这本书,他开发了几个线程安全的集合,后来成为了JDK的 java.util.concurrent一部分.该软件包中的集合对于多线程情况是安全的,并且它们表现良好.事实上,ConcurrentHashMap 几乎所有情况下, 实现都比HashMap表现更好.它还允许同时并发读取和写入,并且它具有支持常见复合操作的方法,否则这些操作不是线程安全的.如果Java 5是部署环境,请从 ConcurrentHashMap

请注意,在上面的引用中,我使用了"[n]",其中n是某个数字,表示作者提供引用的地方,正如您所看到的,他没有为粗体部分提供任何参考.

并不是说我不相信这个陈述,但我很想知道这个陈述的支持证据.因此,没有人知道,显示了两种性能统计信息的任何资源ConcurrentHashMapHashMap?或者任何人都可以向我解释为什么ConcurrentHashMap比HashMap更快?

我可能会在休息时看看ConcurrentHashMap在工作中的实现,但是现在我想听听其他SOers的答案.

java concurrency performance hashmap data-structures

22
推荐指数
4
解决办法
1万
查看次数

为什么Spring框架不赞成使用Guava缓存?

我想使用带有番石榴缓存的spring-cache,但我发现guava缓存已被春季官方文档标记为已弃用.我想知道为什么,他们没有给出一些解释.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html#boot-features-caching-provider-guava

spring guava spring-boot

18
推荐指数
1
解决办法
9697
查看次数