我正在使用 clojure.core.memoize (它使用 clojure.core.cache )。我想使用 TTL cache 但也想对总缓存大小设置上限(因为我可以为 FIFO 缓存提供)。

我知道有各种各样的缓存组合了队列、TTL 等。我不一定想要那种奇特的东西,只是一种限制集合大小的简单方法?

最佳答案

clojure.core.memoize 中的所有 memoize 函数似乎都采用了可选的基本缓存,可用于组合不同的缓存策略:

(require '[clojure.core [memoize :as memo] [cache :as cache]])
(def memoized-identity
  (memo/fifo
    identity
    (cache/ttl-cache-factory {} :ttl 5000)
    :fifo/threshold 32))

有关更多信息,请参阅 core.cachewiki entry on composability

关于caching - 带有上限和 TTL 的 Clojure 缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25995397/

10-15 10:08