Redis连接(在Doctrine缓存中)在每个命令上初始化

时间:2019-03-17 15:18:37

标签: symfony redis doctrine

我有一个Symfony 4.1应用程序,我在其中使用Doctrine,并且想要为Doctrine设置Redis缓存。

这里是"snc/redis-bundle": "^2.1", "symfony/doctrine-bridge": "^4.1", "symfony/proxy-manager-bridge": "^4.1",

的一部分
yml

这是snc_redis: clients: doctrine_cache: type: phpredis alias: doctrine_cache dsn: '%my_dsn%' doctrine: metadata_cache: client: doctrine_cache entity_manager: default 的配置文件:

// very first command after git clone and composer install
php bin/console about

问题是:在Symfony首次尝试为所有DI容器生成缓存时,它会初始化Redis连接。例如,这意味着当我运行 any 控制台命令时,它会尝试连接到Redis。示例:

In PhpredisClientFactory.php line 64:
php_network_getaddresses: getaddrinfo failed: No such host is known.

输出:

mounted

我希望Redis缓存服务将被延迟初始化,否则我将无法在独立的(没有Redis的)环境上运行其他构建命令。 有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

如果在composer install之后发生这种情况,则可能是作曲家运行了默认命令:

 - "post-install-cmd"
 - "post-update-cmd"

尝试删除它们并添加,看看Redis是否起作用...如果起作用,则将脚本添加到部署入口点以最后运行它们。

PS:如果使用迁移,请注意教义和Redis:然后还应清除教义缓存。