Laravel Redis php_network_getaddresses:getaddrinfo 失败:名称或服务未知 [tcp://redis:6379]

kin*_*hva 5 redis laravel-5 docker-container

服务器抛出以下错误可能是由于站点流量大或 redis 连接丢失。但无法找到可以帮助解决此错误的原因。

此外,由于以下错误,服务器会在每天凌晨 4 点左右的特定英国时间停止。

因此,任何与此相关的帮助都会有所帮助。

Server : Digital Ocean
Frontend : React JS
Backend : laravel (5.8)
Used spiritix/lada-cache library for mysql cashing to manage large amount of data.
Application is running on Docker containers.
Run Code Online (Sandbox Code Playgroud)

1)错误:

production.ERROR: php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 [tcp://redis:6379] {"exception":"[object] (Predis\Connection\ConnectionException(code: 0): php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 [tcp://redis:6379] 位于 /var/www/vendor/predis/predis/src/Connection/AbstractConnection.php:155)

2)错误:-

Redis - 加载 Redis 正在将数据集加载到内存中:

3)错误:-

生产.错误:连接被拒绝 [tcp://127.0.0.1:6379]

此错误也会停止服务器。

我尝试在 cron 调度程序上重新启动 docker down 容器。但实际的问题不在于 docker 容器,而是一些内部的 laravel 包,如 Predis | Ladacash 因无法找到确切的解决方案而抛出上述错误。

MED*_*EDZ 9

由于您使用的是 docker,因此您不再应该使用 IP(例如 127.0.0.1)来引用您的 redis 服务器(docker 容器)。而是使用容器名称。

1)运行:docker ps列出所有容器,然后找到redis服务器,并将container name列下的名称复制并粘贴到您的.env文件中作为主机。

2)确保您的应用程序容器和redis容器位于同一网络中:

docker network ls
docker network inspect <network_name>
Run Code Online (Sandbox Code Playgroud)