删除Symfony缓存文件夹-用于无状态水平缩放

问题描述 投票:0回答:1

我想知道是否可以将Symfony应用程序的所有缓存数据保存在Redis容器(如AWS ElastiCache)中。

我了解了您可以在框架中选择的RedisAdapter:

cache:    
     app: cache.adapter.redis
     default_redis_provider: "redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%"

如果您要保存和从Redis缓存中读取和读取,则可以使用。

但是Symfony的其余数据仍然存储在缓存目录中。是否有可能使Symfony完全无状态?

symfony caching redis stateless horizontal-scaling
1个回答
2
投票

您可以使用相同的配置更改系统缓存:

framework:
    cache:
        app: cache.adapter.redis
        system: cache.adapter.redis
        default_redis_provider: "redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%"

这应该在Redis中存储所有与框架相关的缓存,例如翻译,模板,已编译的注释等。您可能还需要更改其他与应用程序相关的缓存,例如Doctrine和其他第三方工具。

[您可能还想看一下Chain Adapter,它将所有条目保存在所有链接的适配器中,但是从头到尾一个接一个地获取它们,这是提供后备的好方法,以防万一您的Redis集群是停机或遇到一些停机时间。如果您使用基于Docker的设置,则应该能够在构建期间预热所有缓存,然后Symfony不需要编写任何新的缓存,即使您不使用该实例也可以轻松启动新实例。 Redis缓存或在链中使用。

© www.soinside.com 2019 - 2024. All rights reserved.