首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Redis作为默认缓存编译的容器的Symfony

使用Redis作为默认缓存编译的容器的Symfony
EN

Stack Overflow用户
提问于 2019-06-24 15:27:50
回答 1查看 1.8K关注 0票数 5

我有一个Symfony应用程序,我想使用Redis作为缓存系统。Symfony的默认缓存系统是文件系统缓存。

从我了解到的文档中,在Symfony中有两个名为缓存的缓存:cache.appcache.system,因此我使用以下cache.yaml将两者设置为Redis:

代码语言:javascript
运行
复制
framework:
    cache:
    # Put the unique name of your app here: the prefix seed
    # is used to compute stable namespaces for cache keys.
    prefix_seed: myteam/myapp

    default_redis_provider: "redis://redis:6379"

    # The app cache caches to the filesystem by default.
    # Other options include:

    # cache.app via Redis
    app: cache.adapter.redis

    # cache.system also
    system: cache.adapter.redis

完成此操作后,我加载了一个示例页面并监视了缓存文件夹。我发现文件仍在缓存文件夹中创建,尽管在Redis中正在创建密钥。

我知道Symfony不建议处理内核在文件缓存中创建的文件,但即使是写到的缓存/prod/Containerxxxxx文件夹也是如此。

在不属于应用程序或系统的文件夹中缓存什么?是否还有另一个名为cache的缓存我错过了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 10:35:39

cache/prod/Containerxxxxx中的文件是已编译的容器文件。

这些文件总是写入您的文件系统,并且永远不会写入其他二级缓存系统。

Symfony一开始就不知道如何访问Redis,如果不从容器中获取该信息,则容器在编译和构建时总是缓存到文件系统。

  • cache.system用于注释、序列化程序和验证等,但不用于已编译容器本身。
  • cache.app是应用程序缓存,如果您在服务方法中键入提示CacheInterfacePsr\\Cache\\CacheItemPoolInterface,就可以在应用程序中使用它。

总之,您无法配置其他缓存,因此Symfony将在那里存储已编译的容器。这些文件是代码,并存储在文件系统中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56739759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档