我们都知道,这个世界上绝对没有完美的东西,得到了一方面的好处,必然牺牲另外一方面。比如说缓存,很多朋友就问我,你的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页面的缓存功能,因为两个插件都是通过获取缓冲区内容的方式写入缓存的,所以若是都想同时获取,必然导致不兼容。
胡乱想到,胡乱说一些!
标签:cos-html-cache, 互联网事
先占座,哈哈哈哈哈哈。