站点首页 新闻资讯 研究文档 优秀模板 免费资源 演示站点 站长充电 交流论坛  
当前位置:首页研究文档>正文
由CSDN论坛的文件缓存想到的
作者:宝玉,日期:2006-4-15 17:32:27,来源:www.csdn.net

CSDN因为访问量巨大,所以采用了文件缓存机制,即将帖子内容生成XML文件,再在客户端有XSLT解析,确实可以很大的减轻数据库压力。于是我也想了想,如果采用这种文件缓存的方式来增强论坛、Blog的性能,减轻数据库压力,要注意哪些问题呢?于是仔细想了想一些可能的问题和如何来解决:

在这之前我先对本文的术语作一个简单解释:第一篇帖子和它的所有回复都称之为一个主题(Thread),第一篇帖子和它后面的每篇回复都叫做帖子(Post)。另外一个前提是本文中,类似于CSDN的情况:即XML文件缓存是辅助的,在数据库中同时存有一份数据,访问时先访问数据库获取关键信息,然后在显示帖子内容时读取XML文件。

缓存的单位:CSDN的缓存是以一个Thread为单位,将Thread下所有的Posts都生成一个XML,这样一个好处就是生成的文件比较少,缺点就是文件更新较频繁(每有回帖就必须更新一下文件),不方便支持帖子修改/删除功能,客户端下载时需要整个XML下载完才能显示出HTML。我个人倾向于以Post为单位,每个Post生成一个XML,这样做的缺点是生成的文件较多,优点是调用更加灵活,不用频繁更新XML,在客户端解析时可以支持单个Post加载完就显示。

缓存的时机:生成缓存文件主要有两种时机——帖子创建时即生成XML、第一次访问帖子时生成XML。我个人倾向于第二种方案:有利于多台服务器负载均衡,如果缓存文件丢失,可以方便再次生成。CSDN好像是采用的在有新帖子创建时生成/修改XML,不确认。

支持帖子修改:CSDN是不支持帖子修改和删除的(版主应该可以吧),具体原因我不清楚,如果他们的缓存文件时在帖子创建时生成和更新,那么可能是不想频繁更新文件,如果是第一次访问时,那么需要有一个时间戳来记录帖子是不是修改了,如果修改了那么需要更新XML。基于前面两个问题我选择的方案,在第一次访问时生成缓存的XML文件,并且以Post为单位生成XML文件,那么当帖子修改后,我在下次访问时需要更新这个XML文件,而不是访问旧的XML文件。

1页,共3页  9 7 [1]  [2]  [3]  8 :

最新动态
 一个typoscript精简教程
 Drupal 的术语(翻译稿)
 Typo3扩展(插件)的安装
 Typo3静态页面(html)(模拟
 Typo3的几种安装包及选择
 什么是内容管理系统?
 HBCMS企业网站管理系统
 2006年各种主流CMS系统的
 [jfcms] 新闻页面中如何实
 渐飞智能标签 3.1详细说明
热点推荐
 一个typoscript精简教程
 Drupal 的术语(翻译稿)
 Typo3静态页面(html)(模拟
 什么是内容管理系统?
 HBCMS企业网站管理系统
 2006年各种主流CMS系统的
 渐飞智能标签 3.1详细说明
 渐飞智能标签 3.1详细说明