background image

PHP 清空 varnish 缓存的详解(包括指定站点下的)

本文是对清空 varnish 的缓存(包括指定站点下的)进行了详细的分析介绍,供大家参考下

 

没法清空文件夹内容 只能清空指定链接缓存
代码如下:
 
<?php

function

 clearVarnish(

$ip

,

$url

,

$host

=null){

 

$errstr

 = '';

$errno

 = '';

$varnist_arr

 = isset(

$host

) ? 

$host

 : C('VARNISH_LIST');

foreach

 (

$varnist_arr

 

as

 

$v

){

$fp

 = 

fsockopen

 (

$ip

, 2000, 

$errno

$errstr

, 2);

if

 (!

$fp

) {

return

 false;

else

 {

$out

 = "purge.url $url \r\n";

fputs

 (

$fp

$out

);

$out

 = 

fgets

(

$fp

 , 4096);

fclose (

$fp

);

return

 

$out

;

}
}
}
?>
 
需要注意的是:

 

传入进来的 url 是不能带参数的 

 

因为 purge.url 

 

 

后清空的是 正则表达式 可以改成/(.?)sougou 这样就可以了。

 
当一台 varnish 缓存多个站点内容需要清除指定站点 URL 

 

 

或者单纯清除 站点首页时 需使

用 purge 而不是 purge.url
代码如下:
 

function

 varnish_purge(

$ip

$host

='', 

$url

) {

$errstr

 = '';

$errno

 = '';