考虑基本的缓存方法:在缓存中查找密钥,如果不在那里,则从主持久存储中获取密钥。如果缓存已满其他值或TTL通过,则该值将过期。
现在,考虑缓存的轻微替代版本:你查找一个密钥,如果它不存在你必须得到它,这里没什么新东西。但是,如果你查找一个键并且该值因TTL而过期,那么你会返回那个陈旧的值,并异步更新该值,以便下一个请求已经看到一个新的值(并且TTL分别重置)?
这个缓存方案有名字吗?它有什么缺点我们错过了吗?
答案 0 :(得分:1)
我不知道它已命名,但我们当然使用了一种方案,其中数据缓存最多N分钟,但是在N / 2分钟后,在后台产生一个线程来更新数据。
如果: A)计算费用昂贵,而且 B)你绝对不能等待新的计算。
如果错误: A)您需要在任何时候获得完整的最新信息。 B)计算非常罕见。在这种情况下,您的数据可能会比较过时。