Symfony избавляется от папки кеша - для горизонтального масштабирования без сохранения состояния
Интересно, возможно ли сохранить все данные кэша приложения Symfony в контейнере Redis, например AWS ElastiCache.
Я читал о RedisAdapter, который вы можете выбрать в рамках:
cache:
app: cache.adapter.redis
default_redis_provider: "redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%"
Это работает, если вы хотите сохранить и прочитать в / из кэша Redis.
Но остальные данные Symfony в любом случае хранятся в каталоге кеша.
Есть ли возможность сделать Symfony полным безгражданством?
С наилучшими пожеланиями Майкл
1 ответ
Вы можете изменить системный кеш в той же конфигурации:
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 кеш или использовать его в цепочке.