gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:02:37 24 4
gpt4 key购买 nike

我有一个 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 连接。这意味着,例如,当我运行任何控制台命令时,它都会尝试连接到 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)环境上运行其他构建命令。有人可以建议一下吗?

最佳答案

如果在composer安装之后发生这种情况,那么您可能会让composer运行默认命令:

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

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

PS:如果您使用迁移,请注意 Doctrine 和Redis:那么您还应该清除 Doctrine 缓存。

关于symfony - Redis 连接(在 Doctrine 缓存中)在每个命令上初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55208602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com