致命错误:Uncaught exception '消息'Redis server went away&#


Fatal error: Uncaught exception 'RedisException' with message 'Redis server went away'

我的一个应用程序突然开始给出错误:

Fatal error: Uncaught exception 'RedisException' with message 'Redis server went away' in /var/www/_slim/_core/system/generator.001.php:133 Stack trace: #0 /var/www/_slim/_core/system/generator.001.php(133): Redis->auth('77B1BFFBC0378DF...') #1 /var/www/_slim/_core/system/generator.007.php(144): Generator001->r6_redis_start('R') #2 /var/www/_slim/_core/system/generator.007.php(26): Generator007->HarvestRedis() #3 /var/www/_slim/_core/system/generator.shopping.php(14): Generator007->Generator007() #4 /var/www/_slim/_core/system/generator.last.php(43): Generator008->Generator008() #5 /var/www/_slim/site/home/php/index.php(16): GeneratorLast->GeneratorLast() #6 /var/www/index.php(96): Gui->Gui()
#7 {main} thrown in /var/www/_slim/_core/system/generator.001.php on line 133

我已经重新安装了redis-server,但到目前为止还没有运气。有什么建议吗?

可能不是具体问题的答案,但可能会帮助那些新来的Redis谁来这里通过谷歌的例外。

你也会得到这个异常,如果你创建了一个Redis实例,并开始在它上面调用方法,而没有首先通过调用

连接到Redis服务器。
$redis->connect('localhost')

如果Redis不是本地主机,配置为侦听不同的端口,设置密码等,则调用的参数显然应该进行调整。

嗯,正如异常描述的那样,你的Redis服务器宕机了。

尝试以下内容:

  1. 查看运行Redis实例的服务器是否包含防火墙(iptables,也许?)
  2. 去你的web服务器(运行你的php),并尝试telnet到你的redis服务器
  3. 查看配置的主机/ip是否正确。可能Redis服务器的网络设置被更改了。

连接到redis有问题

我通过将冒号改为逗号来解决这个问题

$redis->connect('localhost:6379');

from this to this

$redis->connect('localhost', 6379);

如果你运行在本地/dev环境,请确保Redis Service正在运行

你可以通过打开Redis Client命令来检查本地服务是否正在运行。如果您在MAC上,打开命令行并输入redis-cli。

如果您的服务器正在运行,您应该看到:

复述127.0.0.1:6379>

在我的情况下,我忘记启动windows服务,所以我所要做的就是:打开服务。启动Redis Server服务。

我在将我的软件与本地Redis安装集成时遇到了同样的问题。原来是"localhost";主机名没有被解析(东西是在一个不知道的docker容器中运行)。更改为常规环回IP "127.0.0.1"

我的问题是我正在使用Docker Compose,需要使用容器的名称而不是'localhost'。

// Connect to the Redis Docker created server. 'redis' refers to the
// 'redis' container in the docker-compose.yml file.
$redis->connect('redis');
// docker-compose.yml
redis:
    image: redis:alpine
    volumes:
        - redis-data:/data
    ports:
        - ${FORWARD_REDIS_PORT:-6379}:6379
    healthcheck:
        test: ["CMD", "redis-cli", "ping"]
    networks:
        - default