0

我正在尝试构建一个可以根据特定系统的需要清除和重新生成 URL 的系统。我之前在系统通过哈希定位对象时遇到了清除问题,但由于我没有“清除”而错过了变体;在我的 vcl_miss 中(仅在我的 vcl_hit 中,一些指南/示例 vcl 文件未提及此需求,但主要文档在此处提及)。

我想弄清楚的是我是否需要为 REGEN 调用做类似的事情。据我了解,“设置 req.hash_always_miss = true;” 将意味着丢失了旧的哈希并生成了一个新的哈希对象。后续调用将找到新的哈希,但如果缓存中没有适当的变体,可能仍会错过该对象。

有人可以为我确认一个后续请求是否会在新对象中缺少变体将直接导致缓存未命中和获取,而不是从前一个对象中找到任何变体?

4

1 回答 1

1

hash_always_miss 只会影响当前/正在进行的请求及其替换的缓存内容。总是会发生获取,并且对象将使用与任何其他未命中/获取序列相同的规则放入缓存中。

相同哈希的“旧”其他变体仍然是有效对象,并将提供给客户端,指示与不同标头匹配的请求标头。

hash_always_miss 将替换当前变体,仅此而已。

为了回答你的问题,你句子的第二部分是最正确的。

于 2012-12-02T22:52:00.983 回答