基于Scala磁盘的Map

pat*_*rit 3 caching scala hashmap key-value redis

我有一个大的地图,不适合内存,因此我希望它生活在磁盘上.我有以下选择:

  1. 使用纯Java库一样创建mapdb:这工作,但我不明白Scala集合像糖getOrElseUpdate++=apply/ update方法.我可以MapDB在Scala中创建自己的包装类,但我真的不想手动实现所有Map特性.
  2. 使用像redis/memcached这样的东西:我找不到一个好的scala库,它给了我Mapredis或memcached 的特性.这可能是更好的性能解决方案,但它带来了运行db的复杂性

那么是否有任何一个很好的scala only库来实现地图的Scala集合糖,但是它会回落到磁盘和/或大型地图的键值存储中?

pat*_*rit 7

回答了我自己的问题

import collection.mutable
import org.mapdb.DBMaker
import collection.JavaConversions._

val cache: mutable.Map[String, Seq[String]] = DBMaker.newTempHashMap[String, Seq[String]]()
Run Code Online (Sandbox Code Playgroud)