我有一个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的)环境上运行其他构建命令。 有人可以建议吗?
答案 0 :(得分:0)
如果在composer install
之后发生这种情况,则可能是作曲家运行了默认命令:
- "post-install-cmd"
- "post-update-cmd"
尝试删除它们并添加,看看Redis是否起作用...如果起作用,则将脚本添加到部署入口点以最后运行它们。
PS:如果使用迁移,请注意教义和Redis:然后还应清除教义缓存。