Laravel:Redis 无法建立连接:[tcp://127.0.0.1:6379]

Posted

技术标签:

【中文标题】Laravel:Redis 无法建立连接:[tcp://127.0.0.1:6379]【英文标题】:Laravel : Redis No connection could be made : [tcp://127.0.0.1:6379] 【发布时间】:2016-11-30 23:11:20 【问题描述】:

我已经通过添加"predis/predis":"~1.0"安装了带有laravel的redis,

然后为了测试我添加了以下代码:

public function showRedis($id = 1)
   
      $user = Redis::get('user:profile:'.$id);
      Xdd($user);
    

在 app/config/database.php 我有:

'redis' => [
        'cluster' => false,
        'default' => [
            'host' => env('REDIS_HOST', 'localhost'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

它会抛出以下错误:No connection could be made because the target machine actively refused it. [tcp://127.0.0.1:6379]

我在项目中使用virtualhost。 使用Xampp with windows

【问题讨论】:

你已经正确设置了redis,并且检查你的目标端口是否正确? 是的,一切都很好!我想 !如果你需要什么我可以更新我的问题! 确保你在 Vagrant 中而不是在本地机器上运行 【参考方案1】:

我在 Ubuntu 18.04 中遇到了这个问题

我在本地系统中安装了redis,解决了。

sudo apt-get install redis-server

【讨论】:

这是一种很少有人谈论的简单验证。谢谢! 并在终端运行:redis-server 是的。还与 Ubuntu 20.04.2 LTS 合作【参考方案2】:

首先,通过打开 powershell 并输入 netstat -aon | more 确保 Redis 实际上正在侦听该端口(此命令可能需要在功能中启用或以某种方式安装)。如果它正在侦听,请检查您的防火墙设置。如果没有监听,请确保 Redis 已启动并配置为监听该端口。

看起来predis/predis 只是一个客户端库。见https://packagist.org/packages/predis/predis。

你需要安装 Redis 服务器,但是 Windows 上好像没有官方支持。见http://redis.io/download。根据该页面上的信息,这里似乎有一个用于 Redis 的 Win64 端口https://github.com/MSOpenTech/redis。

如果之后仍然无法正常工作,请使用您看到的新错误更新您的问题。

【讨论】:

是的,没有6379端口监听...我该怎么办! 嗯,从谷歌快速搜索来看,predis/predis 只是一个 Redis 客户端库。你安装 Redis 服务器了吗?我用更多信息更新了我的答案。 是的,我已经安装了 redis 服务器。 显然它没有运行或没有在那个端口上监听..我会确保我可以通过使用 telnet 或 redis 客户端直接访问 redis 服务器...查看fellowtuts.com/php/…。除此之外,您还需要发布所有相关的配置和命令输出以获得更多帮助。另请注意,此问题涉及系统问题,可能更适合超级用户姐妹网站。 完美男人!听起来不错!【参考方案3】:

参考解决方案:https://rapidsol.blogspot.com/2018/10/php-fatal-error-uncaught.html

这表明您的服务器不接受来自外部的连接。你需要提供你的redis服务器的ip。

$client = new Predis\Client('tcp://192.168.1.103:6379');
//$client = new Predis\Client();
$client->set('foo', 'bar');
$value = $client->get('foo');
echo $value; exit;

如果问题仍然存在,请尝试以下步骤。

所以你需要编辑: $sudo vi /usr/local/etc/redis.conf

并找到绑定 127.0.0.1 ::1 行 并将其更改为 #bind 127.0.0.1 ::1 然后找到线路保护模式是 然后把它改成protected-mode no

然后重启redis服务器

【讨论】:

【参考方案4】:

如果您使用的是 Redis,请确保 Redis 服务器已启动并正在运行,默认情况下 Redis 在 6379 端口上运行。

如果您在重新启动机器时处于本地环境中,有时您可能还需要重新启动 Redis 服务器。

【讨论】:

请详细说明您的答案,以便其他人可以了解完整的上下文。 添加了更好的上下文描述

以上是关于Laravel:Redis 无法建立连接:[tcp://127.0.0.1:6379]的主要内容,如果未能解决你的问题,请参考以下文章

Redis实战-Jedis连接池的使用方法

Redis实战-Jedis连接池的使用方法

带有 Redis 的 Laravel 广播无法工作/连接?

Laravel 8:无法与主机 smtp.gmail.com 建立连接

.NET 4 新的 TCP 客户端无法连接:无法建立连接,因为目标机器主动拒绝它

无法从 Laravel 应用程序发送电子邮件:无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]