具有到期和软值的基于地图的缓存

Ben*_*ith 10 collections functional-programming scala

我正在寻找缓存地图中的信息,所以我不必保持,例如,击中数据库.在Java中我会使用Google集合的优秀MapMaker并设置一个到期时间,以保持缓存尽可能新鲜,以及softValues,以减少内存使用量.然后我有一个函数来计算当前未缓存的键的值.

MapMaker().softValues
          .expireAfterWrite(10, TimeUnit.MINUTES)
          .makeComputingMap(Function(...));
Run Code Online (Sandbox Code Playgroud)

在Scala中执行此操作的最佳方法是什么?

Jea*_*let 6

正如金说的那样,为什么效果不同MapMaker呢?

import collection.JavaConverters._
val cache = /* your MapMaker code creating a Java map */.asScala
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用Scala映射中的方法访问底层Java映射.