建议对数千页进行最快的 PHP 网页缓存


Suggestion for fastest PHP web page caching for many thousands of pages?

我正在寻找缓存数千个网页的最佳解决方案。现在我正在使用平面文件,在有数千个平面文件之前效果很好,然后整个文件系统在访问文件缓存时(很多)变慢(很多)(在 OpenVZ 下的 CentOS 上使用 EXT3 运行)。我想探索其他选项,如Redis或MongoDB作为替代品,但它们会更快吗?如果没有,最好的建议是什么?

我的系统为每个网站动态创建超过 40K 的页面,因此进行内存缓存也不可行。

谢谢!!

文件缓存很好,你只需要聪明一点。我的目标是将目录保持在 500 个条目或更少。对于 40k 个条目,只需对 URL 进行哈希处理并使用哈希的前 2 个字节即可为您提供 255 个文件夹,每个文件夹平均应包含 ~150 个文件。

我知道 StackExchange 在 CentOS 上使用 Redis,所以从 LAMP 堆栈来看应该更好。Redis似乎针对这类事情进行了优化,而MongoDB更像是一个实际的数据库。你也可以使用memcached。

我建议将文件分散在子目录中,可能按缓存文件名的 md5 哈希的前两三个字符(或只是文件名的前两五个字符)分组。这减轻了文件系统的一点负载。

您是否考虑过使用清漆之类的东西? 根据您要缓存的内容以及失效的复杂程度,它可能对您有用。 您将动态创建页面,并让代理层处理任何重复的请求。

https://www.varnish-cache.org/