scala - 具有过期和软值的基于 map 的缓存

标签 scala collections functional-programming

我希望在 Map 中缓存信息,这样我就不必保留,例如,点击数据库。在 Java 中,我会使用 Google 集合的优秀 MapMaker并设置一个到期时间,以根据需要保持缓存尽可能新鲜,并设置 softValues,以保持内存使用量下降。然后我有一个函数来计算当前未缓存的键的值。

MapMaker().softValues
          .expireAfterWrite(10, TimeUnit.MINUTES)
          .makeComputingMap(Function(...));

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

最佳答案

正如 Kim 所说,如果 MapMaker,为什么要这样做?对你有用吗?

import collection.JavaConverters._
val cache = /* your MapMaker code creating a Java map */.asScala

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

关于scala - 具有过期和软值的基于 map 的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845543/

相关文章:

java - 添加两个数组列表的问题

java - 如何在 Java 中用全零初始化 ArrayList?

java - java.util.Collections.sort() 方法的时间复杂度是多少?

scala - Akka 匿名 Actor 可以访问 self 吗?

scala - 在 Scala 中使用部分应用函数有哪些应用/优势?

list - Scala:从列表中提取重复值

memory - 不可变可以是内存 pig 吗?

Scala - 在没有多态性的情况下实现多态抽象特征

functional-programming - 带谓词的 Rust 映射

Scala 设置不变性