创世神域

Nothing is impossible.

@Puteulanus4年前

11/25
03:46
学习心得

WordPress使用Redis的全站刷新

最近发现采集站访问速度慢的坑爹,排查了一下排除了本地性能瓶颈,最后确定是跟数据库服务器之间的延迟太大了。。。

对付这问题没啥好办法,只能上缓存,缓存期间访问页面直接返回不经过数据库。参照 免费资源部落 的教程给俩采集站加上了Redis缓存,效果拔群。不过对于教程中缓存刷新的问题,总觉得有点问题。

教程中是使用 */10 * * * * curl http://www.freehao123.com/?r=y 来进行首页的缓存刷新,但是首页刷新了,第二页不是应该还缓存着的?这样一旦有了新日志,从首页被挤到了第二页,而第二页的缓存又不刷新,岂不是消失了?

清除所有缓存的功能只在登陆后的后台可用,无法做到自动全部清理,这点对采集站来说无疑是不方便的。我读了下 优化版本的前端PHP脚本 的代码,把清理全部缓存的功能剥离了出来,单独做了个文件放在Wordpress根目录下。【不得不说作者注释详细得相当良心】

<?php
// init predis
include("predis.php");
$redis = new Predis\Client('');

$domain = $_SERVER['HTTP_HOST'];
$dkey = md5($domain);

if ($redis->exists($dkey)) {
$redis->del($dkey);
echo 'domain cache flushed';
} else {
echo 'no cache to flush';
}

?>

只要在crontab里设定定时用curl访问这个页面,就能做到定时清理整站缓存了。

WordPress使用Redis的全站刷新