基于 Scala 磁盘的 Map

标签 scala caching hashmap redis key-value

我有一张大 map ,内存放不下,因此我希望它存在于磁盘上。我有以下选择:

  1. 使用像 MapDB 这样的纯 Java 库: 这行得通,但我不懂 Scala 集合糖,如 getOrElseUpdate++= 以及 apply/update 方法。我可以在 Scala 中围绕 MapDB 创建自己的包装类,但我真的不想手动实现所有 Map 特征。
  2. 使用像 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/

相关文章:

scala - 由于SSL连接已经关闭,如何解决Droping Close的错误

css 没有缓存在 cloudfront for rails 应用程序中?

java - 为什么HashMap的方法hash(int h)是这样的呢?

java - 修改HashMap中LinkedList的值

Java:多个键,一个值HashMap,指向完全相同的值

java - Scala:函数有接口(interface)的返回类型,我需要实现类

scala - 如何在 Spark 2.3.0 中进行自连接?正确的语法是什么?

json - 为元组序列 Play Scala Json Writer

php - 提交表单更新 MySQL 行后页面不刷新

java - 如何在缓存中存储键的范围