Установите ключ префикса кэша Redis на Symfony - PullRequest
1 голос
/ 15 октября 2019

Я использую Redis для управления некоторым кэшированием в моем приложении Symfony 3.4, настроенном так:

config.yml

framework:
    cache:
        default_redis_provider: 'redis://127.0.0.1:6379'
        pools:
            cache.catalog:
                adapter: cache.adapter.redis
                provider: iwid.custom_redis_provider
                default_lifetime: 86400
                public: true
            cache.language:
                adapter: cache.adapter.redis
                provider: iwid.custom_redis_provider
                default_lifetime: 86400
                public: true

сервисов.yml

services:
    iwid.custom_redis_provider:
        class: Redis
        factory: ['Symfony\Component\Cache\Adapter\RedisAdapter', 'createConnection']
        arguments:
            - 'redis://127.0.0.1:6379'
            - { retry_interval: 0, timeout: 30 }

Теперь это работает, как чудо в средах разработки и разработки, за исключением одной вещи в производственной среде: когда я развертываю новый выпуск, моя система развертывания создаетвнутри нее новые папки и git pull , затем предназначаются для этой папки как текущего корневого каталога с символической ссылкой.

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

Итак, как я могу изменить это, возможно, с помощью своего рода «фиксированного» ключа кэша (по одному для каждого пула, очевидно,).

Любая помощь с благодарностью!

1 Ответ

4 голосов
/ 15 октября 2019

Да, вы должны установить фиксированный ключ (как сказано в Symfony Doc ).

Вы также можете использовать имя среды (dev, staging, prod ... -SYMFONY_ENV или APP_ENV) с именем приложения, если вы хотите использовать один и тот же кластер Redis, например, для подготовки и запуска.

framework:
    cache:
        ...
        prefix_seed: '%kernel.environment%_myapp'
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...