静态页面的缓存可能有2种形式:其实主要区别就是CMS是否自己负责关联内容的缓存更新管理。
  
  静态缓存:是在新内容发布的同时就立刻生成相应内容的静态页面,比如:2003年3月22日,管理员通过后台内容管理界面录入一篇文章后,就立刻生成http://www.chedong.com/tech/2003/03/22/001.html这个静态页面,并同步更新相关索引页上的链接。
  
  动态缓存:是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,如果前台缓存服务器找不到相应缓存,就向后台内容管理服务器发出请求,后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问缓存了。
  
  如果去ZDNet等国外网站会发现他们使用的基于Vignette内容管理系统都有这样的页面名称:0,22342566,300458.html。其实这里的0,22342566,300458就是用逗号分割开的多个参数:
  
  第一次访问找不到页面后,相当于会在服务器端产生一个doc_type= 0&doc_id=22342566&doc_template=300458的查询,
  
  而查询结果会生成的缓存的静态页面: 0,22342566,300458.html
  
  静态缓存的缺点:
  
  复杂的触发更新机制:这两种机制在内容管理系统比较简单的时候都是非常适用的。但对于一个关系比较复杂的网站来说,页面之间的逻辑引用关系就成为一个非常非常复杂的问题。最典型的例子就是一条新闻要同时出现在新闻首页和相关的3个新闻专题中,在静态缓存模式中,每发一篇新文章,除了这篇新闻内容本身的页面外,还需要系统通过触发器生成多个新的相关静态页面,这些相关逻辑的触发也往往就会成为内容管理系统中最复杂的部分之一。
  
  旧内容的批量更新: 通过蔡捍娣⒉嫉哪谌荩杂谝郧吧傻木蔡趁娴哪谌莺苣研薷模庋没Х梦示梢趁媸保碌哪0甯疚薹ㄉА?
  
  在动态缓存模式中,每个动态页面只需要关心,而相关的其他页面能自动更新,从而大大减少了设计相关页面更新触发器的需要。
  
  以前做小型应用的时候也用过类似方式:应用首次访问以后将数据库的查询结果在本地存成一个文件,下次请求时先检查本地缓存目录中是否有缓存文件,从而减少对后台数据库的访问。虽然这样做也能承载比较大的负载,但这样的内容管理和缓存管理一体的系统是很难分离的,而且数据完整性也不是很好保存,内容更新时,应用需要把相应内容的的缓存文件删除。但是这样的设计在缓存文件很多的时候往往还需要将缓存目录做一定的分布,否则一个目录下的文件节点超过3000,rm *都会出错。

静态缓存和动态缓存的比较相关推荐

  1. ThinkPHP实现静态缓存和动态缓存

    2019独角兽企业重金招聘Python工程师标准>>> 弄清静态缓存和动态缓存的用途: 静态缓存:生成静态页面--缓存的是整个页面; 动态缓存:仅对数据库中的数据进行了缓存,即&qu ...

  2. 缓存2 动态缓存 memcached

    01准备下载好memcached.exe文件-->放置c:\memcached目录中 02准备下载好php_memcache.dll文件-->放置php\ext扩展目录中 03配置 php ...

  3. 基于反向代理的Web缓存应用-可缓存的CMS系统设计

    基于反向代理的Web缓存加速     --可缓存的CMS系统设计 作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2003/05 ...

  4. nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除

    一,nginx反向代理配置 #tomcat 显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向nginx所在IP)的时候(或将 ...

  5. php静态页面缓存,php处理静态页面:页面设置缓存时间实例

    通过PHP去生成一个纯静态的页面:https://www.jb51.net/article/116814.htm 问:如何触发系统生成纯静态化页面? 1.页面添加缓存时间 2.手动触发的方式 3.cr ...

  6. 【转】系统缓存全解析二:动态缓存(2)-页面局部缓存的两种方式

    有时缓存整个页面是不现实的,因为页的某些部分可能在每次请求时都需要变化.在这些情况下,只能缓存页的一部分.顾名思义,页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其他部分内容则为动态 ...

  7. openresty 页面静态化及多级缓存

    openresty 页面静态化及多级缓存 多级缓存: 数据缓存的好处不用介绍了吧!, 所谓多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升访问效率,这也是应用最广的方案之一. 而 ngin ...

  8. 某大型政务网站的优化咨询案例(视频点播VOD+GZIP压缩+静态文件CDN+Redis缓存+全文索引)

    2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 这次分享关于一个对某大型政务网站的优化咨询的案例,发生在今年的下半年,已过去一段时间,并取得了良好的成果!* 项目背景 某大型政务网站准备上线,需 ...

  9. jvm性能调优实战 - 48无限循环调用和没有缓存的动态代理引起的OOM

    文章目录 Case 1 递归调用 Case2 没有缓存的动态代理 小结 Case 1 递归调用 当时有一个非常重要的系统,我们设计了一个链路监控机制,也就是会在一个比较核心的链路节点,写一些重要的日志 ...

最新文章

  1. STL nth_element
  2. 安装AverMedia UltraA 实时游戏录屏转播模块
  3. docker 部署 nginx
  4. Winform开发框架之通用人员信息管理实现代码介绍
  5. c++ new[] delete[]底层分析
  6. Activity 切换动画
  7. 设计模式--依然创建者
  8. 在Outlook 2007中查看您的Google日历
  9. transition的唧唧歪歪
  10. 微信开发者工具:Failed to load font ************** net::ERR_CONNECTION_RESET问题解决办法
  11. 论文解读丨空洞卷积框架搜索
  12. Oracle新建用户及权限
  13. webpack系列-优化
  14. Golang sha256 加密,PHP hash_hmac(‘sha256‘, $string, $key)加密,Js CryptoJS.HmacSHA256(string, key) 加密
  15. 编程基本功:创新是贬义词,与乱搞同义
  16. create-react-app+antd+react-css-modules配置
  17. 学历-GBT 4658-2006
  18. 虚函数表和虚函数表指针的汇编分析
  19. 深入了解前端路由 hash 与 history 差异
  20. html页面banner空白,css banner不拉伸

热门文章

  1. vb.net TextBox 失去焦点和获得焦点
  2. Laya分包教程--小米版
  3. 第三方支付平台支付接口及回调接口开发
  4. 运放关键参数一 :失调电压
  5. 集团管理者培训大会-总结
  6. [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%
  7. 【老生谈算法】matlab实现车牌识别设计——车牌识别
  8. c语言for循环经典案例 1-100循环相加
  9. 深度学习中的量化学习与量化训练
  10. 速锐得解码理想汽车L8方向盘转向角度应用随动大灯照明升级