gpt4 book ai didi

varnish - 在数据库记录级别使用 Varnish 缓存

转载 作者:行者123 更新时间:2023-12-03 17:45:20 26 4
gpt4 key购买 nike

我正在使用具有称为“基于窗口小部件”的体系结构的Web应用程序的遗留代码库。它基本上是缓存的数据库结果数据集,这些数据集将在应用程序不同部分的多个“窗口小部件”上显示。因此,当他们更新或创建新记录时,他们使用一组规则来知道哪些缓存无效,以便显示该记录。

通过阅读 Varnish 用例示例,看起来它并不是用于缓存数据库记录(如memcache或apc),而是 Web服务器的响应本身(又名,整个html页)。

如果我的上一条语句是正确的,我该如何仅使显示新记录的html页面的 Varnish 缓存的缓存注册表无效(基本上是选择要无效的内容)?

最佳答案

您可以清除缓存的内容。在文档Purging and Banning的本节中对此进行了说明。

基本上,您在VCL文件中添加了类似的内容

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

sub vcl_recv {
# allow PURGE from localhost and 192.168.55...

if (req.method == "PURGE") {
if (!client.ip ~ purge) {
return(synth(405,"Not allowed."));
}
return (purge);
}
}

重新启动服务器后,您可以使用PURGE方法清除页面。

例如,如果您具有以下网址: http://yourhost.com/widget/a
您将清除请求发送到相同的地址,以将其从缓存中删除。

您可以如下使用命令行实用程序curl,但是任何允许发送自定义HTTP方法的工具/库都可以使用:
curl -X PURGE http://yourhost.com/widget/a

关于varnish - 在数据库记录级别使用 Varnish 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45270793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com