Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 缓存完全动态的网站_Php_Linux_Caching - Fatal编程技术网

Php 缓存完全动态的网站

Php 缓存完全动态的网站,php,linux,caching,Php,Linux,Caching,我制作了一个动态网站,有20000多个页面,一旦创建了一个页面,至少一个月甚至一年都不需要更新。因此,我在第一次创建页面时缓存每个页面,然后从静态html页面交付它 我正在运行一个php脚本,如果文件_存在$filename,则整个CMS都在php上,首先从缓存文件目录中的url中搜索文件名,如果匹配,则将其交付,否则生成页面并缓存以供以后使用。虽然它是动态的,但我的url仍然不包含?&=,我通过将其分解为数组来实现这一点 我想知道的是,从那个巨大的目录中搜索文件会不会产生任何问题 我看到了一些

我制作了一个动态网站,有20000多个页面,一旦创建了一个页面,至少一个月甚至一年都不需要更新。因此,我在第一次创建页面时缓存每个页面,然后从静态html页面交付它

我正在运行一个php脚本,如果文件_存在$filename,则整个CMS都在php上,首先从缓存文件目录中的url中搜索文件名,如果匹配,则将其交付,否则生成页面并缓存以供以后使用。虽然它是动态的,但我的url仍然不包含?&=,我通过将其分解为数组来实现这一点

我想知道的是,从那个巨大的目录中搜索文件会不会产生任何问题

我看到了一些Q/a,比如说我可以用ext2或ext3存储在目录中的文件数量应该没有问题。我想我的服务器有ext3文件系统,但是当文件超过20-30000个时,创建新文件的速度会迅速下降

目前我在共享主机上,必须缓存文件。我的主机在我的整个盒子里有100000个文件的软限制,这到目前为止已经足够好了


有人能告诉我如何缓存站点的更好方法吗。

您不应该将所有20K文件放在一个目录中

例如,按字母将它们划分为目录,以便访问:

a/apple-pie-recipe
j/john-doe-for-presidency
等等


这将允许您在文件系统上放置更多的文件,而限制更少,从而提高速度。由于FS不需要找出您的文件和其他20k文件在目录中的位置,它需要查找大约100个

您不应该将所有20k文件放在一个目录中

例如,按字母将它们划分为目录,以便访问:

a/apple-pie-recipe
j/john-doe-for-presidency
等等

这将允许您在文件系统上放置更多的文件,而限制更少,从而提高速度。由于FS不需要找出您的文件和其他20k文件在目录中的位置,它需要查找大约100个文件

我可以用ext2或ext3存储在目录中的文件数量应该没有问题

这是一个相当古老的文档-ext2和ext3之间有两个很大的区别-日志记录是一个,另一个是目录的H树索引,它减少了在同一目录中存储大量文件的影响。虽然将日志添加到ext2文件系统并将其装载为ext3很简单,但这并没有提供dir_索引的好处——这需要一个完整的fsck

不管文件系统是什么,使用嵌套目录结构都会使系统更易于管理和扩展,并避免了旧文件系统上的性能问题

自从我开始写这篇文章以来,我正在做另外三件事,看到其他人也提出了类似的建议——但是Madara的方法并没有给出一个均衡的树,Oto有一个语义路径可能更可取

e、 g

然而,解决这个问题的真正方法是使用正确的标题提供内容,并在Web服务器前运行缓存反向代理,尽管这对于lwo容量非常大的站点并不实际

我可以用ext2或ext3存储在目录中的文件数量应该没有问题

这是一个相当古老的文档-ext2和ext3之间有两个很大的区别-日志记录是一个,另一个是目录的H树索引,它减少了在同一目录中存储大量文件的影响。虽然将日志添加到ext2文件系统并将其装载为ext3很简单,但这并没有提供dir_索引的好处——这需要一个完整的fsck

不管文件系统是什么,使用嵌套目录结构都会使系统更易于管理和扩展,并避免了旧文件系统上的性能问题

自从我开始写这篇文章以来,我正在做另外三件事,看到其他人也提出了类似的建议——但是Madara的方法并没有给出一个均衡的树,Oto有一个语义路径可能更可取

e、 g


然而,解决此问题的真正方法是使用正确的标题为内容提供服务,并在Web服务器前运行缓存反向代理,尽管这对于lwo容量非常大的站点来说并不实际。

windows存在每个目录中有大量文件的问题。。。听起来你指的不是windows主机。如果页面的内容略有变化,而HTML没有变化,那么在缓存页面和动态页面之间可能会有一个折衷。只需将HTML模板存储在磁盘上,并将内容存储在数据库中即可。@ReyGonzales:静态化内容的要点是HTML页面是服务速度比PHP页面快得多,特别是在流量非常高的网站上。因此,如果你有一个静态版本的文件,你可以提供它,而不是每次都查询数据库等@Dave我不打算移动到Windows,但我说的是JU
像ext3这样的信息也可能有某种影响[比文件_稍快。windows在每个目录中有大量文件的问题…但听起来你并不是指windows托管。如果页面内容略有变化,而HTML没有变化,也许你可以在缓存和动态页面之间折衷一下-只需将HTML模板存储在磁盘上,然后数据库中的内容。@ReyGonzales:静态化内容的意义在于,HTML页面的服务速度比PHP页面快得多,尤其是在流量非常高的网站上。因此,如果你有一个静态版本的文件,你可以提供该文件,而不是每次都查询数据库等。@Dave我不打算移动到Windows,但我说仅作为信息,因为ext3也可能有某种效果[比文件稍快一点。你的建议很好,我会这么做,但仅仅是为了获取信息,PHP是否足够快?它将比创建一个新的我知道的从目录中的20000个文件中搜索文件要快?@Anuj:我不知道,对你来说够快吗?试试看。你的建议很好,我会这么做,但只是为了获取信息n PHP是否足够快?它比创建一个新的我知道的从目录中的20000个文件中搜索文件要快吗?@Anuj:我不知道,它是否足够快?试试看。这也是一个很好的答案,但Madara Uchiha说的对我来说更容易:这也是一个很好的答案,但Madara Uchiha说的对我来说更容易: