2012-11-28 42 views
0

我正在嘗試構建一個系統,可以按照特定系統的要求清除和重新生成URL。我以前在系統通過哈希找到對象時遇到了清除問題,但由於我沒有「清除」而錯過了該變體。在我的vcl_miss中(僅在我的vcl_hit中,一些指南/示例vcl文件沒有提到這種需要,但主要文檔確實是here)。光油3.0.3 req.hash_always_miss vs Vary

我想弄清楚的是如果我需要爲REGEN調用做類似的事情。根據我的理解,「set req.hash_always_miss = true;」將意味着舊的散列被遺漏,併產生一個新的散列對象。隨後的調用將查找新的散列,但如果高速緩存中沒有適當的變體,則可能仍會錯過該對象。

有人可以確認後續請求是否在新對象中缺少變體將直接導致緩存未命中並獲取,而不是從前一個對象中找到任何變體?

回答

1

hash_always_miss只會影響當前/正在進行的請求及其替換的緩存內容。抓取總是會發生,並且該對象將使用與任何其他未命中/抓取序列相同的規則放入緩存。

相同散列的「舊」其他變體仍然是有效的對象,並且將被提供給客戶端,以指示與不同標題匹配的請求標頭。

hash_always_miss將替換當前的變體,沒有別的。

要回答你的問題,你的句子的第二部分是最正確的。