当前位置

MediaWiki网站根据不同的网址设置不同的缓存过期时间

James Qi 在 2017年12月8日 - 16:55 提交
内容摘要:MediaWiki的文件缓存(File Cache)在我们实际使用的网站中还是很重要的,可以让访问速度快很多,不过有些页面要求有一定的实时性,缓存过期时间不宜过长,我们以前都是设置的统一过期时间,然后......

  MediaWiki的文件缓存(File Cache)在我们实际使用的网站中还是很重要的,可以让访问速度快很多,不过有些页面要求有一定的实时性,缓存过期时间不宜过长,我们以前都是设置的统一过期时间,然后部分页面不生成文件缓存,这些不生成文件缓存的页面往往成为了MySQL服务器中慢查询的来源。

  今天先是想了一个办法,Linux服务器上设置crontab,定时执行一个批处理文件,来删除cache目录下的缓存文件,这样可以实现我们需要的对不同页面缓存不同的时间长度,但缺点是设置比较麻烦,而且执行磁盘查找、删除在数据量大的时候比较慢。

  后来又想了个办法,在LocalSettings.php中针对不同的网址设置不同的$wgCacheEpoch,例如:

......
$request_uri = $_SERVER['REQUEST_URI'];
if ( $request_uri == '/' || $request_uri == '/'.urlencode('首页') ){//固定几种网址
    $wgCacheEpoch = max($wgCacheEpoch,date('YmdHis',strtotime('-2 hours')));//缓存过期时间为2小时
} elseif ( strpos($request_uri,urlencode('骗子')) != FALSE ) {//标题中包含'骗子'的网址
    $wgCacheEpoch = max($wgCacheEpoch,date('YmdHis',strtotime('-1 day')));//缓存过期时间为1天
} else {//其它网址
    $wgCacheEpoch = max($wgCacheEpoch,date('YmdHis',strtotime('-1 month'))); //缓存过期时间为1个月
}
......

  这样

自由标签: