在以前的一篇日志中,cosbeta认为,凡是插件级(cos-html-cache除外)的缓存都不会有多大的效果,毕竟他们都无法绕过wordpress的预处理。不相信的话,可以做一个实验,在一个页面已经缓存的情况下,修改wp-config.php文件,故意将数据路的信息修改成错误的信息,然后刷新缓存的页面,若该页面依然正常,那么此缓存则效率很高,否则,缓存效果并不明显。
所以,今天晚上cosbeta想到一种新的思路,那就是对wordpress做外部缓存。
配合cos-html-cache使用,此外部缓存仅仅缓存非post页面,缓存的方式如下(仅仅针对非single post页面):
- 检查页面html中是否有cos-html-cache的缓存flag”<!–cos-html-cache-safe-tag—>”,有则将缓冲区文件写入缓存,否则利用cos-html-cache缓存;
- 访问wordpress的时候,检查缓存是否存在或者过期(不会通过插件机制检查,因此若缓存被引用,即使数据库关闭,页面依然正常),若过期则写入新的缓存,否则,直接调用缓存文件;
这样便可实现wordpress的全站缓存,这样的缓存有什么作用,下面我做一个计算:
假设blog的访问量是1w+,非静态化文件访问是1000;
未缓存:按照wordpress的数据库使用情况看来,一天数据库查询绝不少于30000次;
使用缓存:(假设缓存时间为5分钟):一天数据库查询的次数则为 24*60/5 = 288次;
由于single post依然采用cos-html-cache,因此对于评论之类的实时显示毫无影响。
今晚找可能吧和我自己的blog做小白鼠,测试一下。
本站html之外的文件也都缓存,欢迎大家查看(不是.html结尾的页面)源代码,代码最后一行会显示缓存生成的时间。
补充说明:这个插件其实没有那么高深,要不是CPH出错报告关闭了的话,10分钟便可搞定(多亏PEAR)。关键是测试,看看有没有想想不周到的地方。
标签:Wordpress, wp-ext-cache
沙发,哈哈,希望早日放出