我正在寻找缓存数千个网页的最佳解决方案。现在我使用的是平面文件,直到有数千个平面文件时,整个文件系统都会变慢(很大程度上)访问文件的缓存(在CentOS上运行,在OpenVZ下运行EXT3 )。我想探索其他的选择,如Redis或MongoDB作为替代品,但它们会更快吗?如果没有,最好的建议是什么?
我的系统为每个网站动态创建了超过40K的页面,所以使用内存缓存也不可行。
谢谢!!
发布于 2012-06-29 01:56:39
文件缓存很好,你只需要聪明一点就行了。我的目标是将目录保持在500个条目或更少。有40k个条目,只要对url进行散列并使用散列的前2个字节,就会得到255个文件夹,每个文件夹平均应该包含大约150个文件。
发布于 2012-06-29 01:52:01
嗯,我知道StackExchange在CentOS上使用Redis,所以在LAMP堆栈上应该更好。Redis似乎针对这类事情进行了优化,而MongoDB更像是一个实际的数据库。您也可以使用memcached。
发布于 2012-06-29 01:54:28
我建议将文件分散到子目录中,可能按缓存文件名的md5散列的前两个或三个字符分组(或仅按文件名的前两个或前五个字符分组)。这减轻了文件系统的负载。
https://stackoverflow.com/questions/11250190
复制相似问题