gpt4 book ai didi

PHP缓存,在多个目录中存储缓存

转载 作者:搜寻专家 更新时间:2023-10-31 20:49:41 24 4
gpt4 key购买 nike

我们在 GoDaddy 仍有许多客户站点,而且它们是复杂的站点,因此我们需要一些时间来迁移它们。最终,他们将在专用环境中结束,但就目前而言,我们只能使用 GoDaddy 的共享托管方案。

我想在静态文件中设置输出缓冲区 PHP 缓存,并且可能每 3-4 小时清除一次。我在网上看到的完成此操作的方法似乎是将所有缓存文件放入一个大目录中。

GoDaddy 有一项政策(我们现在正在就另一个问题进行斗争)他们不允许在单个目录中放置超过 1,024 个文件,因为这会降低共享环境的性能。我不否认这个事实,但我希望可能有一个聪明的 PHP 缓存解决方案,我们有各种各样的嵌套缓存结构。

有什么想法吗?

最佳答案

您可以做的是散列目录以创建子目录结构。当然,这在很大程度上取决于您如何存储/命名要缓存的文件,因此这只是一种通用方法。

例如,如果您正在缓存页面 20150.php,则将文件存储为 /cache/20/20150.php,将每个二级目录限制为 1000 个文件.如果您知道要加载 20150.php,那么您就会知道使用千位数字作为目录名称。

这就是文档管理系统通常将大量图像和文档存储在文件系统中的方式。如果您缓存的内容在数据库中具有关联的文章 ID,这是理想的选择。

另一种方法是创建页面的实际散列(md5,或您选择的算法),并以此为基础构建结构,顶级目录是散列的前 3 位数字,其下方的是第二 3. 例如,文件 c88ad6a7421ef2b0d7451c3390a00a39.php 可能存储在 /cache/c88/ad6/c88ad6a7421ef2b0d7451c3390a00a39.php 中。

另一件事,或者当然,是确保您的数据库尽可能优化,以便您知道您确实需要缓存内容。缓存很好,但是一旦您从数据库中提取了所有可能的内容(索引、优化查询),就应该进行缓存。

还有诸如 memcached 之类的服务器,但我假设您无法使用共享主机。

关于PHP缓存,在多个目录中存储缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com