Zorla Önbelleği Geçersiz Kılmak

ban ve purge işlemlerinin amacı, yeni verileri önbellekte saklamak değil, önbellekteki öğeleri kaldırmaktır. Geçersiz nesneyi tekrar talep eden bir sonraki kullanıcı, bu nesnenin önbelleğe yeniden girmesini tetikler. Bu eşzamansız bir işlemdir ve geçersiz kılma isteği ile verilerin önbelleğe yeniden girilmesi arasında bir süre olabilir.

Verilerin senkronize bir şekilde “yeniden yüklenmesi” için, req.hash_always_miss daha iyi bir çözümdür. vcl_recv içinde req.hash_always_miss değerini true olarak ayarlayarak, önbellekteki nesnenin süresi dolmamış olsa bile, Varnish’e bu kaynağın en son değerini almasını söyleyebiliriz. Güncel değeri içeren yeni bir nesne ayarlanır. Eski nesne artık kullanılmıyor, ancak süresi doluncaya kadar hala orada olacak.

req.hash_always_miss belleği boşaltmaz. Aksine, bunun yerine önbelleğe fazladan nesneler ekler.

Bu yenileme stratejisini, örneğin bir web sitesinin editörüyseniz kullanabilirsiniz. Kendinizi tanımlamak için bir ACL kullanırsınız ve istekleriniz asla önbelleğe alınmış bir nesne döndürmez. Bu kaynağı her güncellediğinizde, güncellenmiş sürümü hemen görürsünüz.

acl editors {
  "localhost";
  "192.168.55.0"/24;
}

sub vcl_recv {
  if (req.http.cache-control ~ "no-cache" && client.ip ~ editors) {
      set req.hash_always_miss = true;
  }
}

Last updated