不同的文件缓存方法,优点和缺点

Jon*_*ite 2 javascript css php networking caching

我目前是一名在大学工作的安置学生(网络开发人员),我被分配了一些大型网络项目.这些项目包括对该大学的整体改造,它帮助网站每月从大学校园获得大约14k次点击,外部大约4k.我还有第二个项目,它是第一个项目的移动版本.这些项目将分享一些资源.

概括这个问题所以答案可能对更多人有用:

  • 我有两个网站将共享一些资源,比如index.php,functions.js和style.css,这些脚本几乎可以在网站的所有页面上使用.
  • 我有两个受众群体(在下载速度方面),网站托管在同一网络中的用户(100mb/s aprx)和外部用户.

我想知道什么是缓存每种脚本(.js,.css,.php)的最佳方法,以及如何在可能的情况下如何利用其优点和缺点完成其他方法的示例.通过缓存我的意思是本地,网络和服务器缓存.

注意:index.php是一个动态页面,应该每2小时从缓存中刷新一次.如果你用.js,.css,.php或其组合开始你的答案会很酷,所以我可以很容易地看到你在谈论缓存的脚本类型.

谢谢大家!

Lai*_*eed 7

通过cachine进行性能调整可以分为多层:

  • 客户端(JS和CSS):添加Expires或Cache-Control Header将为您完成.但请注意,除了缓存之外,还有更多工作要做,以增强客户端性能.对于详细信息,请查看加速网站的最佳实践
  • 服务器端:这可以是多层次的Web服务器,脚本语言,数据库,操作系统,网络等.

可以在第9章(性能) - 开发大型Web应用程序中找到好的介绍和实用的代码示例.它将讨论缓存CSS,Javascript,模块,页面,Ajax和Expire标头.

如果我们需要在服务器端保持简单,请执行以下操作:

  1. 安装APC扩展,通过所谓的操作码缓存使PHP更快.没有特殊配置,它会默默地为您服务.
  2. 使用这个简单的Pear库PEAR :: Cache_Lite将整个页面缓存两个小时.
  3. 对于每个数据库SELECT查询缓存APC中的结果,TTL为5 Min,md5散列SELECT语句并将其用作APC缓存的密钥.文件

将来,如果您有多台服务器,并且在此之前性能变得至关重要,您将需要查看:

  1. 服务器之间的共享内存缓存.检查Memecache甚至是Membase
  2. 您需要一个反向代理解决方案:这基本上是您的用户和服务器服务器之间的层,以便它将提供HTTP请求而不是您的服务器.您可以使用Varnish,SquidApache Traffic Server.
  3. Mysql innoDB引擎很慢,你可能需要寻找更快的引擎,比如XtraDB
  4. 那么也许你会发现理性数据库对你来说很慢.然后,您将使用MongoDB等键值解决方案.

最后作为Web应用程序性能检查的参考:

  1. 前端性能:高性能网站,更快的网站高性能JavaScript.
  2. 后端性能:Pro PHP应用程序性能高性能MySQL