在 PHP 网站上缓存大量页面

5
我参与了一个项目,将在现有网站上创建约1000万个新页面。该网站和新项目都是使用CodeIgniter构建,并连接到MySQL。
我从未处理过这么大规模的网站,我担心我们应该如何处理缓存。有没有处理过这么大PHP网站缓存的人可以给我一些指导?我习惯于使用CodeIgniter缓存系统等类似工具,但是它可能会创建大量的缓存文件,这让我很担心。
非常感谢您的任何建议。
4个回答

2

我没有做过那么大规模的事情,但只要缓存机制不是完全愚蠢的,并且你使用现代文件系统,那么基于文件的缓存就没有问题。在目录树中分布缓存文件是足够聪明的。

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


1

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

选项:

  • Opcode缓存(Zend、eAccelerator,等等
  • CodeIgniter视图缓存(按视图配置)
  • CodeIgniter读取查询缓存
  • 一般Web缓存(更多信息
  • 优化数据库(更多信息

(等等)

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

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

在我的经验中,视图缓存和Web缓存对于广泛阅读的网站(例如WPSuperCache)来说是一个巨大的收益。Opcode缓存(以及其他形式的最小化)对于高度动态的网站非常有用,数据库性能调优也是如此。

0

提示:如果系统运行在Windows服务器上:Windows最多可以在一个文件夹中包含大约65,000个文件,包括缓存文件夹。不确定这个上限在新版本中是否已经修复。


0

所有大佬都使用APC。 网页数量并不重要。 相关的数字是点击量(页面浏览量)。 如果你想设计速度,请放弃Windows机器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接