Я использую 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 изменяется, так как путь к моему приложению другой. Затем это, очевидно, делает недействительными любые ранее кэшированные ключи ... что не то, что я хочу!
Итак, как я могу изменить это, возможно, с помощью своего рода «фиксированного» ключа кэша (по одному для каждого пула, очевидно,).
Любая помощь с благодарностью!