在php网站上缓存大量页面

时间:2009-11-17 23:59:43

标签: php mysql caching codeigniter

我参与了一个项目,最终将在现有网站上创建大约1000万个新页面。该站点和新项目使用CodeIgniter构建并连接到MySQL。

我以前从未处理过这种规模的网站,而且我担心我们应该如何处理缓存。有没有人在这个大小的PHP网站上处理缓存可以给我一些指示?我已经习惯了CodeIgniter缓存系统和类似的东西,但是会造成的缓存文件数量令我担心。

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:2)

我没有做过任何规模的事情,但是我没有看到基于文件的缓存存在问题,只要缓存机制不是完全愚蠢,而你使用的是现代文件系统。在整个目录树中分发缓存文件非常聪明。

如果你担心,那很好。当然,我建议在CI的内置机制周围编写一个包装器,这样你就可以轻松地将其换成其他东西(比如Zend_Cache,可能有一个强大的memcached服务器,或者你自己设计的一些更智能的基于文件的系统)

答案 1 :(得分:1)

PHP和CodeIgniter有几层缓存,但您不必担心标准Linux服务器上缓存文件的数量(各种文件系统可以处理每个挂载点数亿个文件)。但是要选择你的缓存方法,你需要仔细衡量。

选项:

  • 操作码缓存(Zend,eAccelerator,and more
  • CodeIgniter视图缓存(按视图配置)
  • CodeIgniter读取查询缓存
  • 常规网络缓存(more info
  • 优化您的数据库(more info

(依此类推)

此外,您可以使用内存文件系统和内存表来改进文件缓存。

真正的问题是,你如何选择缓存策略?容量规划。您可以根据最佳理论为系统(用户,帐户,页面,文件)建模,模拟,测量和添加缓存。再次测量。产生新的理论和测量,直到您有适合您所需规模的方法。

根据我的经验,查看缓存和Web缓存对于广泛阅读的网站(例如WPSuperCache)来说是一个巨大的收获。操作码缓存(以及其他形式的最小化)对于高度动态的站点非常有用,数据库性能调整也是如此。

答案 2 :(得分:0)

仅供参考:如果系统在Windows服务器上运行:Windows可以(可以?)最大值。约有文件夹中的65.000个文件,包括缓存文件夹。不确定此上限是否已在较新版本中修复。

答案 3 :(得分:0)

所有大个子都使用APC。 网页数量无关紧要。 相关数字是点击次数(综合浏览量)。 如果你为Windows机器设计速度沟。