我们有一个新的 Symfony 设置,以 Redis 作为缓存机制。我们想要连接到特定主机,而不是默认的本地主机。在生产环境中,./bin/console debug:dotenv 给出了正确的 REDIS_HOST。这是在我们的 .env 和 .env.local.php 中配置的。
我们得到的错误是:
连接被拒绝:tcp:127.0.0.1/6379
这是我们的配置:
services.yml
services: Redis: # you can also use \RedisArray, \RedisCluster or \Predis\Client classes class: \Predis\Client calls: - connect: - '%env(REDIS_HOST)%' - '%env(int:REDIS_PORT)%' Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler: arguments: - '@Redis' - prefix: sp_ss_ - ttl: 1800
cache.yml
framework: cache: app: cache.adapter.redis default_redis_provider: 'Redis' pools: site.cache: adapter: cache.app
以及我们的 .env 文件:
APP_ENV=prod APP_SECRET=**** MESSENGER_TRANSPORT_DSN=redis://redis.local:6379/messages REDIS_HOST=redis.local REDIS_PORT=6379 REDIS_URL=redis://redis.local:6379
Symfony 的文档建议使用“calls -> connect”,但仅当您将类定义为“Redis”时才使用它。当您使用'\Predis\Client'时,您需要使用以下设置:
“config/services.yaml”
我还使用“\Predis\Client”,更改为“arguments”后,连接在这里工作。
有关更多参数参考,请查看此链接(连接参数列表).