如何在Scala中执行LRU缓存,缓存不会在其中逐出

时间:2014-08-07 17:03:42

标签: java scala

我一直在玩LRUCache.scala

我有兴趣学习如何设计一个不受限制地增长的缓存(用于纯粹的学术/ Scala学习目的​​),一个不会逐出条目的缓存。 我希望这个数据结构有一个构造函数,它有一个参数表示"最后使用的缓存大小"而不是LRU缓存的固定大小" 而不是:

  new LRUCache(maxSize, 0, backingMap, SortedMap.empty[Long, K])

我想在以下几行:

  val cache = new LRUCache(cacheSizeLastKnown, ackingMap, SortedMap.empty[Long, K])

我心中的疑问是: 这是一个可变的缓存,还是一个不可变的缓存,每次创建的每个新的不可变缓存都是一个新生的"缓存代表我的"缓存无限增长?

我希望通过提出这个问题来实现一个缓存不会驱逐最近最少使用密钥的方法。

0 个答案:

没有答案
相关问题