我有一张大 map ,内存放不下,因此我希望它存在于磁盘上。我有以下选择:
- 使用像 MapDB 这样的纯 Java 库: 这行得通,但我不懂 Scala
集合糖,如
getOrElseUpdate
和++=
以及apply
/update
方法。我可以在 Scala 中围绕MapDB
创建自己的包装类,但我真的不想手动实现所有Map
特征。 - 使用像 redis/memcached 这样的东西:我找不到一个好的 scala 库来为我提供 redis 或 memcached 的
Map
特性。这可能是更好的性能解决方案,但它引入了运行数据库的复杂性
那么是否有任何不错的 scala only library 实现了 map 的 Scala 集合糖,但它又退回到磁盘和/或大型 map 的键值存储?
最佳答案
回答了我自己的问题
import collection.mutable
import org.mapdb.DBMaker
import collection.JavaConversions._
val cache: mutable.Map[String, Seq[String]] = DBMaker.newTempHashMap[String, Seq[String]]()
关于基于 Scala 磁盘的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14783327/