这种类型的缓存方案有名称吗?
Posted
技术标签:
【中文标题】这种类型的缓存方案有名称吗?【英文标题】:Does this type of caching scheme have a name? 【发布时间】:2011-02-16 13:32:20 【问题描述】:考虑基本的缓存方法:您在缓存中查找一个键,如果它不存在,您就从主持久存储中获取它。如果缓存已满其他值或 TTL 通过,则该值过期。
现在,考虑一个稍微替代版本的缓存:你查找一个键,如果它不在那里,你必须得到它,这里没有什么新东西。但是,如果您查找一个键并且该值由于 TTL 已过期,而是返回该陈旧值,并异步更新该值,以便下一个请求已经看到一个新值(并且 TTL 分别重置),该怎么办?
这个缓存方案有名字吗?它有什么我们遗漏的缺点吗?
【问题讨论】:
它是具有某种延长生命周期/提前刷新的 LRU。 (不是在 TTL 达到 0 时更新值,而是将问题视为输入 TTL+x 的条目,并在 TTL 达到 x 时更新,然后最终消失为 0。) 【参考方案1】:我不知道它的名字,但我们确实使用了一种方案,其中数据最多缓存 N 分钟,但在 N/2 分钟后,会在后台生成一个线程来更新数据。
如果: A)计算成本很高,并且 B) 你绝对不能等待新的计算。
如果: A) 您在任何时候都需要完全最新的信息。 B) 计算非常少见。在这种情况下,您的数据可能会过期数小时。
【讨论】:
以上是关于这种类型的缓存方案有名称吗?的主要内容,如果未能解决你的问题,请参考以下文章