2011-02-16 51 views
2

考虑基本的缓存方法:在缓存中查找密钥,如果不在缓存中,则从主持久性存储中取回密钥。如果缓存满了其他值或者TTL通过,则该值到期。这种类型的缓存方案是否有名字?

现在,考虑缓存的略微替代版本:您查找关键,如果它不在那里,你必须得到它,这里没有新东西。但是如果你查找一个关键字并且由于TTL而导致该值已经过期,但是你会返回该失效值并异步更新该值,以便下一个请求已经看到一个新值(并分别重置TTL)?

这个缓存方案是否有名字?它有什么缺点我们错过了吗?

+0

它是一种延长生命期/提早刷新的LRU。 (不是在TTL达到0时更新值,而是用TTL + x代替输入条目,并在TTL达到x时更新,最后在0消失之前更新) – user611775 2011-02-16 13:38:03

回答

1

我不知道它的名称,但我们肯定使用了一种方案,其中数据缓存达N分钟,但在N/2分钟后,在后台产生一个线程以更新数据。 B)你不能绝对地等待一个新的计算。如果: A)计算是昂贵的,并且B)你绝对不能等待一个新的计算。

不好: A)你需要在任何时候完全保持最新的信息。 B)计算非常少见。在这种情况下,您的数据可能会比如说已过时。

相关问题