建议为数千页快速的PHP网页缓存?

时间:2012-06-28 17:48:32

标签: php caching mongodb redis flat-file

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

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

谢谢!

4 个答案:

答案 0 :(得分:3)

文件缓存很好,你只需要聪明一点。我的目标是让导演保持500个或更少的参赛作品。使用40k条目,只需散列网址并使用散列的前2个字节将为您提供255个文件夹,每个文件夹平均应包含约150个文件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我建议将文件传播到子目录中,可能按缓存文件名称的md5哈希的前两个或三个字符分组(或者只是文件名的前两个或五个字符)。这会占用文件系统的一些负载。

答案 3 :(得分:0)

你看过像Varnish这样的东西吗?根据您的缓存情况以及失效的复杂程度,它可能对您有用。您可以动态创建页面,让代理层处理任何重复的请求。

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