Symfony избавляется от папки кеша - для горизонтального масштабирования без сохранения состояния - PullRequest
0 голосов
/ 21 февраля 2019

Интересно, можно ли сохранить все данные кэша приложения Symfony в контейнере Redis, например AWS ElastiCache.

Я читал о RedisAdapter, который вы можете выбрать в рамках:

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

Это работает, если вы хотите сохранить и прочитать в / из кэша Redis.

Но остальные данные Symfony в любом случае сохраняются в каталоге кеша.

Есть ли возможность сделать Symfony полностью не имеющим состояния?

С наилучшими пожеланиями Майкл

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете изменить системный кеш в той же конфигурации:

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

. В Redis должны храниться все кэши, связанные с фреймворком, такие как переводы, шаблоны, скомпилированные аннотации и т. Д.Вам также может понадобиться изменить другие кеши приложений, такие как Doctrine и другие сторонние инструменты.

Возможно, вы захотите взглянуть на Цепной адаптер , который сохраняет все записи во всех цепных адаптерах,но извлекает их один за другим, начиная с первого до последнего, что делает его хорошим способом обеспечить запасной вариант, если ваш кластер Redis не работает или когда у вас возникли некоторые простои.Если вы используете установку, основанную на Docker, вы должны иметь возможность прогревать все кэши во время сборки, и тогда Symfony не нужно будет писать какие-либо новые кэши, что позволит легко раскручивать новые экземпляры, даже если вы не используетеRedis кеш или использовать его в цепочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...