《构建高性能Web站点》笔记:4.1 动态内容缓存
动态html缓存是指 将动态的内容如 detial?id=xxx 缓存起来,存成文件; 当收到同样的请求时,直接返回缓存的文件,而不必再去执行一次完整的请求处理过程,比如查数据库什么的。 缓存除了放文件里,还可以放内存里,或者一台独立的缓存服务器中。 具体实现的方案包括: 1. web/mvc框架:如php的smarty,它提供了缓存操作的API 2. web服务器:如apache的mod_cache,它根据http头里的一些字段来决定缓存的刷新策略 (在这里,缓存的key是url) #2比#1的代码侵入性要低的多、甚至可以说没有侵入; 但反过来说,这也意味着缓存的设计依赖了web server,并且应用程序对缓存失去了直接控制 前端 另一个重要的缓存点是动态脚本编译后的opcode,如jsp编译后的字节码。 将opcode缓存起来,可以避免每次请求时都编译一次 1.php/jsp都可以玩这一套,其中jsp还可以pre-compile 2.这种缓存只能节省CPU/内存的开销,跟I/O没什么关系; 如果你的应用的瓶颈是在I/O,那这种做法就没什么效果