我正在使用 Redis 来管理 Symfony 3.4 应用程序中的一些缓存,配置如下:
配置.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 }
现在,这在开发和生产环境中就像一个魅力,除了生产中的一件事:当我部署新版本时,我的部署系统创建一个新文件夹 and git pull在里面,然后将此文件夹定位为当前 rootdir带有符号链接。
然后,当我部署任何版本时,我的 Redis 键的前缀会更改,因为我的应用程序的路径不同。然后,这显然会使任何以前缓存的密钥无效......这不是我想要的!
所以,我可以改变这一点,可能是通过拥有一种“固定”缓存键(显然每个池一个)。
非常感谢任何帮助!
是的,你必须设置一个固定密钥(正如他们在交响乐文档 https://symfony.com/doc/current/reference/configuration/framework.html#prefix-seed).
您还可以使用环境名称(dev、staging、prod...-SYMFONY_ENV
or APP_ENV
)与应用程序名称(例如,如果您想使用相同的 Redis 集群进行暂存和生产)。
framework:
cache:
...
prefix_seed: '%kernel.environment%_myapp'
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)