我有一个使用 Fastly 作为 FPC 的站点,我已经阻止了代码中的所有“清除”请求,以便在需要时保持页面缓存。“过期”标题有 +1 天的间隔。为了测试我已经设置了一个 cronjob 来每分钟打开一个特定的页面。它运行了 1 天,所有请求都返回了缓存结果,但是当我以 30 分钟的间隔设置类似的 cronjob 时 - 请求变得不可缓存。如果一段时间未请求缓存内容,是否有刷新/无效缓存内容的设置/机制?或者这种行为的原因是什么?
问问题
69 次
1 回答
3
缓存的内容有可能被驱逐。
我建议通读 Fastly Developer Hub 页面“缓存新鲜度和 TTLs ”,其中指出:
重要提示:我们不一定会为请求的完整 TTL 存储对象,并且可能会更早地驱逐不太受欢迎的对象,尤其是在它们很大的情况下。我们也不会在对象达到 TTL 时自动驱逐它们。它们只是变得陈旧。
此外,Fastly 的“服务陈旧内容”指南指出:
Fastly 有一个 LRU 列表,因此不一定保证对象在其整个 TTL(生存时间)内都保持在缓存中。但是驱逐取决于许多因素,包括对象的请求频率、它的 TTL 以及提供它的 POP。例如,具有 3700 秒或更长 TTL 的对象被写入磁盘,而具有更短 TTL 的对象最终被临时存储在内存中。我们建议您尽可能将 TTL 设置为 3700 秒以上。
快速阅读一下 Fastly 的“缓存配置最佳实践”指南也是值得的,以防其中提到您尚未配置的任何内容。
否则,您也应该联系 support@fastly.com,因为他们是一个友好的团队,可以为您提供帮助。
于 2021-11-01T09:47:55.127 回答