gpt4 book ai didi

php - symfony 缓存文件系统是否在同一目录限制中处理 ext2 32000 个文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:54 25 4
gpt4 key购买 nike

symfony 缓存系统是否处理同一目录限制中的 ext2 32000 个文件?

我有 80000 个用户,我想缓存他们的配置文件,但 symfony 缓存系统是否处理 ext2 限制?

我也为其他将面临同样问题的人发帖。

最佳答案

我不是 100% 确定我的答案是否正确,但在 PROJECT/lib/symfony/cache/sfCacheFile.class.php 中有一个方法:sfCacheFile::getFilePath()返回文件的路径。似乎没有任何针对 ext2 文件系统限制的保护措施。

但是有一个非常简单的解决方案——覆盖那个类:

  1. PROJECT/apps/APP/config/factories.yml 中设置你自己的缓存类:

    default:
    # Others factories (if any)

    view_cache:
    class: myOwnFileCache
    param:
    automatic_cleaning_factor: 0
    cache_dir: %SF_TEMPLATE_CACHE_DIR%
    lifetime: 86400
    prefix: %SF_APP_DIR%/template
  2. 现在创建该类并确保它扩展 sfFileCache 并覆盖 getFilePath()

    # PROJECT/lib/PROJECT/cache/myOwnFileCache.class.php        
    class myOwnFileCache extends sfFileCache {
    protected getFilePath($key) {
    /*
    Convert from: abcdef
    to: a/b/abcdef
    */
    $key = substr($key, 0, 1) . DIRECTORY_SEPARATOR . substr($key, 1, 1) . DIRECTORY_SEPARATOR . $key;
    return parent::getFilePath($key);
    }

  3. 清除缓存:./symfony cc

现在您需要 32000 个以完全相同两个字母/数字开头的缓存键来粉碎您的文件系统。

关于php - symfony 缓存文件系统是否在同一目录限制中处理 ext2 32000 个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689343/

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