静态页面的缓存可能有2种形式:复杂的缺点

优采云 发布时间: 2021-07-21 05:30

  静态页面的缓存可能有2种形式:复杂的缺点

  静态页面的缓存可能有两种形式:其实主要区别在于cms是否负责关联内容的缓存更新管理。

  静态缓存:新内容发布时,立即生成对应内容的静态页面。比如2003年3月22日,管理员通过后台内容管理界面输入一个文章,然后立即生成这个静态页面,并同步更新相关索引页面上的链接。

  动态缓存:新内容发布后,不会提前生成相应的静态页面,直到对相应内容提出请求。如果前端缓存服务器找不到对应的缓存,就会向后端内容管理服务器发送请求。系统会生成一个带有相应内容的静态页面。用户第一次访问页面时可能会比较慢,但稍后会直接访问缓存。

  如果你去ZDNet等国外网站,你会发现他们使用的基于Vignette的内容管理系统有这个页面名称:0,22342566,300458.html。其实这里的0,22342566,300458是多个参数用逗号隔开:

  第一次访问页面找不到后,相当于在服务端进行了doc_type=0&doc_id=22342566&doc_template=300458的查询,

  查询结果生成的缓存静态页面:0,22342566,300458.html

  静态缓存的缺点:

  复杂的触发更新机制:这两种机制非常适合内容管理系统比较简单的情况。但是对于一个关系更复杂的网站,页面之间的逻辑引用关系就变成了一个非常非常复杂的问题。最典型的例子就是一条新闻应该同时出现在新闻首页和3个相关的新闻主题。在静态缓存模式下,每个新的文章帖子除了新闻内容本身的页面之外,还需要一个系统。多个新的相关静态页面通过触发器生成,这些相关逻辑的触发往往成为内容管理系统中最复杂的部分之一。

  旧内容批量更新:通蔡韩迪⒉杰娜谌荩杂郧霸笨木才陈贤谌英磊研究模型庋无梦秀,利用安全性在哪里?你有罪吗?

  在动态缓存模式下,只需要关注每个动态页面,其他相关页面都可以自动更新,大大减少了设计相关页面更新触发器的需要。

  之前做小应用的时候也用过类似的方法:应用第一次访问后,将数据库的查询结果作为文件保存在本地,下次请求时,先检查是否有缓存本地缓存目录中的文件,从而减少对数据库的访问。虽然这样也可以承载比较大的负载,但是这样的内容管理和缓存管理的系统很难分离,数据完整性也没有很好的保持。当内容更新时,应用程序需要缓存相应的内容。文件删除。但是这样的设计往往需要在缓存文件较多的情况下,将缓存目录进行一定程度的分配,否则一个目录下的文件节点超过3000个,rm*就会出错。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线