Skip to content
Zhou Hao edited this page Mar 19, 2019 · 2 revisions

超时机制介绍

为GroupCache增加超时淘汰机制,是为了能更新key对应的内容。原版作者是不推荐增加超时的,认为GroupCache只适合value不变的情况,这让很多场景变得难以使用。

设计超时机制的初衷,是为了提供一种能挡掉热点请求的Cache,并且支持一定时间后刷新缓存结果。

生命周期介绍

这里将value的生命周期划分为如下三个阶段:

  1. active: 在设定的expiration时间内称为活跃期,此时如果Cache命中直接返回Cache结果;
  2. stale: 超过expiration但在stalePeriod时间内称为陈旧期,此时先load数据,如果在staleDeadline时间内返回则用新数据回包,否则使用Cache结果兜底(底层返回结果后,依然会回写Cache触发异步更新);
  3. expired: 超过expiration+stalePeriod时间后,value数据彻底失效,此时等同于没有命中cache,必须等待load返回数据

cache_expiration

Clone this wiki locally