Loading...

图解cos-html-cache原理

2007-08-31 15:35:37 发表于Wordpress, 网站技术 本文链接: 图解cos-html-cache原理

其实早在以前我已经写过关于cache和cos-html-cache原理的文章了,但是还是有朋友有点迷糊,所以今天抽空再来篇图解cos-html-cache原理介绍,毕竟一图胜千言,希望通过这次介绍,大家能对这个插件的原理更加明白,这样安装过程出现问题之后也能更快的定位了,更快的解决了。

如左图,cos-html-cache插件是需要urlrewrite支持的,不幸的是这个条件已经将国内的70%的虚拟主机挡在门外了。下面介绍请求url的流程,当访问者请求一个网址的时候,如例子中的/html/y2007/1_demo.html,服务器首先会去相关的文件夹(/html/y2007/)下寻找文件(1_demo.html)是否存在,如果存在则直接将该文件发送给浏览者,否则则发送一个404文件未找到的错误给浏览者,但是如果你的服务器支持自定义htaccess,服务器则将利用wordpress设置好的urlrewrite规则,将请求定位到index.php,剩下的事情由index.php进行处理,这个时候如果你安装了cos-html-cache这个插件,index.php在输出html的同时就会启动缓存创建函数来创建缓存,如本例中,缓存函数将分析请求的url,如 http://storyday.com/html/y2007/1_demo.html,然后检查web根目录下的html文件夹是否存在,如不存在则创建之,同样的方式创建y2007文件夹,然后在文件夹中创建文件1_demo.html,将刚才的输出内容写入到这个缓存文件中,至此缓存建立完毕,这样下一次同样的网址被访问到的时候,web服务器将直接输出缓存文件,而不会去执行php,也不会去查询数据库,大大的提高的页面的在入速度,和WP-Cache不在同一量级。

那么这个缓存的更新机制是怎样的呢?由于wordpress完善的插件hook机制,使得在任何需要的地方我们都可以利用插件来操作wp,因此cos-html-cache在将缓存更新绑定在几个关键的操作上,他们是增加文章、修改文章、增加留言、修改留言、删除留言,因为一般的blog需要更新的事件无非也就是这几个,所以这这些事件发生的时候,cos-html-cache将会删除对应文章的缓存,该文章下一次被访问的时候就会再次被创建缓存。
批量更新,有朋友总希望恢复1.1版本的后台批量更新功能,其实2.0版本的批量删除缓存功能就是批量更新。批量删除的原理是:插件从数据库中获取所有文章的永久链接,然后根据链接分析缓存的路径,利用php删除对应缓存文件。这时候有人会说,那怎么没有更新呢?下次有人访问就自动更新了呀。想更新特定的文章缓存怎么办?管他什么特定的文章哦,需要更新的时候就批量删除缓存即可。我认为这是最优的方法,1.x的版本经常将bluehost搞得超标,这也是促使我将插件升级2.0的一个重要原因。

任何事物都是具有两面性的,如果你仅仅是blog,我强烈建议你用上这个插件,对于浏览者来说,速度和花哨的界面,多数人愿意选择前者。

理解了原理之后,相关的问题就容易解决了,比如为什么分页无法建立文件,因为你分页的链接是/xxx/xx/post1.html/2,这并不是一个文件路径,所以无法建立文件,若是你能想办法(网上已经有人有相关办法)让分页的格式如/xxx/xx/post1-page2.html,这就是一个实际文件的地址了,插件便可创建文件了。

一个台湾 mm测试的本插件运行数据 可以参考

顺祝明天的WordCamp2007 Beijing活动成功举办!

该日志未加标签
发表于 2007-08-31 15:35:37 目录:Wordpress, 网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有14位大师动手指导 拒绝低俗
    • 1楼 Bruce 在2007.08.31 16:19发表评论如下: 回复

      可惜了,我那郁闷的空间。[r]可怜:)[/r]

      • 2楼 zhangyu 在2007.09.14 10:18发表评论如下: 回复

        使用了这个插件后,速度确实快了,但是问题也有,就是按月归档页面怎么显示不出来了,具体看:http://zhangyu.info/2007/09
        这个怎么解决啊,难道只能停掉这个插件或者是把按月归档给丢掉??
        希望能得到答复,谢谢!
        [r]你的永久链接格式为什么要和归档的格式一致,你不能显示归档是很正常的,你看看我的永久链接格式吧,
        建议你仔细阅读一下这篇原理介绍,然后看看自己post的链接格式,再看看自己归档的链接格式你就应该明白是什么原因了啊[/r]

        • 3楼 Allen 在2007.11.16 20:10发表评论如下: 回复

          【…至此缓存建立完毕,这样下一次同样的网址被访问到的时候,web服务器将直接输出缓存文件,而不会去执行php,也不会去查询数据库…】

          假如html已创建,那么访问的时候是直接去读取该html文件呢,还是说需要用到index.php去处理那个html并输出?

          再仔细阅读一下你引用的那段文字,不是明说了web服务器 直接输出html不执行php呀

          • 4楼 Allen 在2007.11.16 21:35发表评论如下: 回复

            这么说,只要被访问的html文件是真实存在的,那服务器就不会解析htaccess里面的规则了吗?
            可好像htaccess的优先级高于其他文件啊
            不知道htaccess有没有这样一种写法,就是判断一下访问的html文件是否存在,存在则不执行规则,否则执行重写规则

            • 5楼 Allen 在2007.11.16 23:22发表评论如下: 回复

              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule . /index.php [L]

              搜索了一阵才搞明白了,原来以上wordpress写在htaccess的代码已经就是这种功能了,如果判断到访问的文件(或目录)不存在,则把重写的任务交给index.php处理。之前还以为就算已经生产html,至少需要index.php去读一下那个文件的内容,只是避免了去查询数据库。现在终于理解了
              RewriteCond %{REQUEST_FILENAME} !-f 的含义

              呵呵,这就对了

              • 6楼 bigCat 在2008.12.27 11:33发表评论如下: 回复

                囧…那个…偶路径是 ooxx.me/demo.orz
                这样子,那不是根目录下一排缓存文件…

                • 6楼附属品 江东 在2008.12.27 12:53发表评论如下: 回复

                  ooxx儿童不宜,所以插件不理,哈哈哈

                • 7楼 imp 在2009.01.02 11:00发表评论如下: 回复

                  谢谢博主这么好的插件,请问怎样让分页的格式如/xxx/xx/post1-page2.html,我想尝试一下把自己的page也静态化。有这方面的文章么?

                  • 8楼 mothink 在2009.01.09 14:59发表评论如下: 回复

                    感谢作者提供这么好的插件

                    安装使用后大部分正常,但是首页没办法生成

                    http://mothink.com/index.html

                    直接跳转到404

                    麻烦作者帮我看下,谢谢

                    • 8楼附属品 江东 在2009.01.09 15:49发表评论如下: 回复

                      首页的问题和服务器权限相关,好多服务器不能自由的修改web根目录的权限,所以我将打算修改首页的缓存机制。很快就会有更新的版本出来,请关注

                    • 9楼 i69853294 在2009.02.13 12:42发表评论如下: 回复

                      很想知道在win主机上rewrite如何设置?

                      • […] cos-html-cach是一个由江东大哥出品的真正的真正的静态化插件,本人是一个PHP文盲,所以该插件的工作原理就不能阐述了!如果你想了解其的工作原理你可以看看江东大哥写的“图解cos-html-cache原理”,本人一直在关注和使用这个插件,之所以为“真正”,本人觉得该插件是真正生成html的,且在cpu利用率上,稳定性,速度上等等都是一流的!所以wordpress官方也很青睐! 插件作者:江东 目前版本:2.7 插件地址:cos-html-cache2.7 下载地址:官方下载 本站下载 介绍一些相关的文章: cos-html-cache不会导致CPU超标 cos-html-cache的缓存机制 wp-cache未必能有多大的效果 (No Ratings Yet)  Loading … Tags: cos-html-cache, 插件, 静态化 […]

                        • 11楼 Xiangee » Wordpress 速度优化 - 缓存篇 在2009.07.02 20:49发表评论如下: 回复

                          […] 查看 图解cos-html-cache原理 […]

                          • […]       如果执意需要缓存插件的话,那就换用cos-html-cache 试试看吧。关于该插件的原理,可参看《图解cos-html-cache原理》。该插件由江东开发,之所以要推荐这款插件,更重要的在于江东大侠本人同时开发了与本主题相关的一个WP-PostViews的JS版,二者出自同一人,问题定然完美解决。简言之,就是cos-html-cache + WP-PostViews的JS版组合。 […]

                            评论分页: 1
                            (Required)
                            (Required, not published)
                            如果留言未显示无需重复留言,我将为你恢复!