Symfony использует Redis для кеширования по умолчанию скомпилированного контейнера - PullRequest
2 голосов
/ 24 июня 2019

У меня есть приложение Symfony, и я хотел бы использовать Redis в качестве системы кеширования. Стандартная система кэширования для Symfony - это кэширование файловой системы.

из документации, которую я узнал, в Symfony есть два именованных кэша; cache.app и cache.system, поэтому я установил Redis со следующим cache.yaml:

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 не рекомендует возиться с файлами, которые Ядро создает в файловом кеше, но даже папка cache / prod / Containerxxxxx была записана.

Что может быть кэшированием в папке, которая не является частью приложения или системы? Есть еще один именованный кеш, который я пропустил?

1 Ответ

2 голосов
/ 25 июня 2019

Файлы в cache/prod/Containerxxxxx являются файлами скомпилированного контейнера.

Они всегда записываются в вашу файловую систему и никогда не записываются в другие системы вторичного кэша.

Symfony не знал бы, как получить доступ к Redis, не получив эту информацию из контейнера, контейнер всегда кэшируется в файловую систему при компиляции и сборке.

  • cache.system используется для таких вещей, как аннотации, сериализатор и проверка; но не для самого скомпилированного контейнера.

  • cache.app - это кэш приложения, который вы можете использовать в своем приложении, если наберете подсказку CacheInterface или Psr\\Cache\\CacheItemPoolInterface в методах служб.

Подводя итог, вы не можете настроить другой кеш, поэтому Symfony будет хранить скомпилированный контейнер там. Эти файлы являются кодом и хранятся в файловой системе.

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