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

问题描述 投票:1回答:1

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

这里是composer.json的一部分

"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

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

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

输出:

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

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

symfony redis doctrine
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.