Loading...

关于cache

2009-02-26 17:24:49 发表于网站技术 本文链接: 关于cache

我们都知道,这个世界上绝对没有完美的东西,得到了一方面的好处,必然牺牲另外一方面。比如说缓存,很多朋友就问我,你的cos-html-cache能不能实时更新某些东西呢,比如说访问次数,比如说热门文章等等。

其实,在刚接触wordpress的时候我就用PEAR的cache Lite做过了模板级别的缓存,基本原理就是根据url的唯一性生成唯一的缓存文件,然后根据用户设定的失效时间实现缓存的自动删除和更新。那个时候我用得很好,自我感觉速度提升了(当然肯定是有提升)。后来ixwebhosting数据库老出问题,每次出问题的时候我的blog就无法访问,原来这样的缓存依然无法离开数据库,熟悉了wordpress的插件机制之后才发现,即使在在初始化的时候将插件hook上去,也无法阻止wordpress之前对数据库的一些操作,比如获取bloginfo()中的内容,所以后来往就发现,最大的瓶颈依然是在WP的本身,于是我就很果断(说武断也可以)判断,wp_cache 等插件是无法和cos-htm-cache(最初始的版本叫cos-html-creator)相比的。可能有人要问,凭什么用了cos-html-cache,wordpress就不会去做预处理了,这个很明显,因为一旦缓存文件存在,服务器优先会去抓取html文件,所以就不关wordpress的事情了。

其实换个角度想想,我们的blog有那么多需要实时更新的东西么?最新留言需要更新?当留言批准之后,插件会干这个事情。实时最新的文章内容?当你修改和删除或者添加文章的时候,插件依然会更新相关的内容。由于我自己只需要这两点实时更新,而插件能做到,所以动态化和静态化没有任何两样。静态化减少了负载,何乐而不为呢?

当然,cos-html-cache的缺点也是显而易见的:需要.htaccess支持,需要永久链接的格式犹如真正的html文件路径。第一个条件,足以把所有的windows主机和国内的主机挡在外面,第二天足以把用默认地址的blogger挡在外面,因为他们可能不知道有如何将老链接redirect到新链接。

考虑到对缓存的高要求,考虑到cos-html-cache只缓存更新率比较高的single页面,所以我打算再开发一个插件,缓存除了post之外的页面,而这些页面的缓存更新将采用定期的方式,当然,若是其他知名插件可以设置只缓存post之外的页面,cosbeta强烈建议你混合使用。使用的时候一定要关闭其他插件对post页面的缓存功能,因为两个插件都是通过获取缓冲区内容的方式写入缓存的,所以若是都想同时获取,必然导致不兼容。

胡乱想到,胡乱说一些!

标签:,
发表于 2009-02-26 17:24:49 目录:网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    feed url
    上一篇: « 美国虚拟主机代购
    下一篇: 谈谈工作 »
    已经有15位大师动手指导 拒绝低俗
    • 1楼 北极冰仔 在2009.02.26 17:29发表评论如下: 回复

      先占座,哈哈哈哈哈哈。

      • 2楼 Betty 在2009.02.26 17:38发表评论如下: 回复

        如果不必把链接格式改成.html就好了,虽然可以做转向,但改动原有的链接形式对网站肯定有不好的影响

        • 2楼附属品 江东 在2009.02.26 17:42发表评论如下: 回复

          原理决定了,除非用我以前那个PEAR的模式,那样始终有瓶颈

        • 3楼 voidman 在2009.02.26 18:14发表评论如下: 回复

          顶,虽然我现在不用了,哈哈

          • 4楼 williamlong 在2009.02.26 22:08发表评论如下: 回复

            最好把目录页也做成静态的,那样就可以完全脱离PHP和WOrdpress了。

            • 5楼 bssn 在2009.02.26 23:15发表评论如下: 回复

              不知这个插件是否可与wp-super-cache共用。post页生成静态,让其他页面缓存一下,这样对数据库的负担小一些。

              • 5楼附属品 江东 在2009.02.26 23:18发表评论如下: 回复

                本文最后一段已经说过,用的条件!

              • 6楼 muzik 在2009.02.27 00:47发表评论如下: 回复

                需要.htaccess支持,需要永久链接的格式犹如真正的html文件路径。第一个条件,足以把所有的windows主机和国内的主机挡在外面
                ————————
                挑个刺儿..”.htaccess支持”和”windows主机”没有关系,有关系的是IIS还是APACHE。windows下的apache也是可以支持且默认支持.htaccess的。

                • 6楼附属品 江东 在2009.02.27 16:02发表评论如下: 回复

                  恩,确实这样,我自己说得不够严谨,我现在的wamp就支持htaccess,但是感觉专业的服务器用window+apache有点别扭,所以……,哈哈

                • 7楼 ZeroZ 在2009.02.27 10:20发表评论如下: 回复

                  好像侧边的东西是不会实时更新的?

                  • 7楼附属品 江东 在2009.02.27 16:07发表评论如下: 回复

                    用了cache就别指望实时,我的站点基本上是实时更新

                    • 7楼附属品 ZeroZ 在2009.02.27 16:13发表评论如下: 回复

                      基本上是实时更新?
                      怎么做?

                      • 7楼附属品 江东 在2009.02.27 16:14发表评论如下: 回复

                        ajax调用需要实时更新的,或者将需要实时更新的js化,或者实时更新只发生在edit/modify/add new/delete post的时候

                    • 8楼 海妖的夜 在2009.03.03 22:23发表评论如下: 回复

                      按照博主说法,是不是.htaccess文件里定义了rewrite到某个页面,并且这个页面已经存在之后,wordpress就不会做任何操作?
                      那这样的话,是不是将.htaccess里重写到super cache插件产生的文件上就不需要这个插件了?
                      cos-html-cache现在很严重的问题是对于mu没有支持,如果加上根据站名分类,用.htaccess重写就更完美了.

                      • 9楼 亲爱的小Z 在2011.01.06 15:40发表评论如下: 回复

                        麻烦问一下,cos-html-cache这个插件是不是只能缓存post页面?我的永久链接格式是/%category%/%postname%.html,post的链接末尾是有.html的,而page的链接末尾是没有.html的,请问该插件对page页面能够起到缓存效果吗?

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