Vin*_*inZ 1 caching redis symfony
我正在使用 Redis 管理我的 Symfony 3.4 应用程序中的一些缓存,配置如下:
配置文件
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
Run Code Online (Sandbox Code Playgroud)
服务.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 }
Run Code Online (Sandbox Code Playgroud)
现在,这在开发和生产环境中就像一个魅力一样,除了生产中的一件事:当我部署一个新版本时,我的部署系统会创建一个新文件夹并在其中创建git pull,然后将此文件夹作为当前 rootdir使用一个符号链接。
然后,当我部署任何版本时,我的 Redis 键的前缀会更改,因为我的应用程序的路径不同。然后,这显然会使任何以前缓存的键无效......这不是我想要的!
所以,我可以改变这一点,可能是通过一种“固定”缓存键(显然每个池一个)。
非常感谢任何帮助!
是的,您必须设置一个固定键(正如他们在Symfony Doc 中所说的那样)。
例如,如果您想使用相同的 Redis 集群进行 staging 和 prod,您还可以将环境名称(dev、staging、prod... -SYMFONY_ENV或APP_ENV)与应用程序名称一起使用。
framework:
cache:
...
prefix_seed: '%kernel.environment%_myapp'
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |