无法在127.0.0.1:6379连接到Redis:连接被拒绝与自制程序

buf*_*fei 93 redis redis-server

使用自制软件来安装Redis但是当我尝试ping Redis时会显示此错误.

Could not connect to Redis at 127.0.0.1:6379: Connection refused
Run Code Online (Sandbox Code Playgroud)

注意: 我尝试关闭防火墙并编辑conf文件也不行.我使用macOS Sierra和自制版本1.1.11

LuF*_*FFy 220

安装后redis,输入terminal:

redis-server
Run Code Online (Sandbox Code Playgroud)

Redis-Server将启动

  • 但是,如何阻止它侦听该端口/主机? (2认同)
  • 对于命令提示符下的Windows,请输入cd C:\ Program Files \ Redis`,然后再输入`redis-server`。 (2认同)
  • 如何在后台连续运行 redis-server,我使用的是 ubuntu @LuFFy (2认同)
  • @AATHITHRAJENDRAN,检查[这个答案](/sf/answers/2332137461/),我希望它会有所帮助 (2认同)
  • 在命令末尾设置“&”以在后台运行 (2认同)

小智 34

redis-server --daemonize yes
Run Code Online (Sandbox Code Playgroud)

我通过运行此命令解决了这个问题。


Aar*_*ron 31

我在尝试找出为什么在启动后无法连接到redis时发现了这个问题brew services start redis.

TL;博士

根据您的机器或安装的新鲜程度,您可能会丢失配置文件或redis默认值的目录.

  1. 你需要一个配置文件/usr/local/etc/redis.conf.没有这个文件redis-server将无法启动.您可以复制默认配置文件并从中进行修改

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
    Run Code Online (Sandbox Code Playgroud)
  2. 你需要/usr/local/var/db/redis/存在.你可以轻松地做到这一点

    mkdir -p /usr/local/var/db/redis
    
    Run Code Online (Sandbox Code Playgroud)

最后只需重新启动redis brew services restart redis.

你怎么找到这个!?

我浪费了很多时间试图弄清楚redis是不是通过自制软件使用默认值以及它所使用的端口.服务是误导性的,因为即使redis-server没有真正开始,brew services list仍然会将redis显示为"已启动".最好的方法是使用brew services --verbose start redis它来显示日志文件所在的位置/usr/local/var/log/redis.log.在那里我找到了吸烟枪

Fatal error, can't open config file '/usr/local/etc/redis.conf'
Run Code Online (Sandbox Code Playgroud)

要么

Can't chdir to '/usr/local/var/db/redis/': No such file or directory
Run Code Online (Sandbox Code Playgroud)

值得庆幸的是,日志使解决方案显而易见.

我不能跑redis-server吗?

你确定可以.如果你跑的话,它会偶尔占用一个终端或偶尔打断你的终端redis-server &.它也将放在dump.rdb你在(pwd)中运行它的任何目录中.我很生气,不得不删除文件或在git中忽略它,所以我想我会让brew与服务一起工作.


Moh*_*iya 18

日期:2021 年 12 月

导致此错误的原因有几个。我读了一篇文章来为我解决这个问题。所以我只是一一总结一下要检查的内容。

1 检查:Redis-Server未启动

redis-server

Also to run Redis in the background, the following command could be used.

redis-server --daemonize yes
Run Code Online (Sandbox Code Playgroud)

2.检查:防火墙限制

sudo ufw status (inactive)
sudo ufw active (for making active it might disable ssh when first time active. So enable port 22 to access ssh.)
sudo ufw allow 22
sudo ufw allow 6379
Run Code Online (Sandbox Code Playgroud)

3.检查:资源使用情况

ps -aux | grep redis
Run Code Online (Sandbox Code Playgroud)

4. 配置设置限制

sudo vi /etc/redis/redis.conf.
Run Code Online (Sandbox Code Playgroud)

注释以下行。

# bind 127.0.0.1 ::1
Run Code Online (Sandbox Code Playgroud)

注意:恶意行为者将更难发出请求或访问您的服务器。确保您绑定到正确的 IP 地址网络。

希望它能帮助某人。欲了解更多信息,请阅读以下文章。

https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/


myS*_*Sun 11

如果需要重新安装redis,只需输入终端:

redis-server &

在Ubuntu上使用Upstart运行Redis

我一直在尝试了解如何在Ubuntu上从头开始设置系统。我只是安装redis在盒子上,这是我的操作方法以及需要注意的事项。

安装:

sudo apt-get install redis-server
Run Code Online (Sandbox Code Playgroud)

这将创建一个redis用户并init.d为其安装脚本。由于upstart现在是使用init.d的替代品,因此我认为应该将其转换为使用upstart

要为以下命令禁用默认init.d脚本redis

sudo update-rc.d redis-server disable
Run Code Online (Sandbox Code Playgroud)

然后/etc/init/redis-server.conf使用以下脚本创建:

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

respawn
Run Code Online (Sandbox Code Playgroud)

这是脚本,upstart用于了解运行什么命令来启动该进程。最后一行还upstart指示如果死亡,请继续尝试重生。

我必须更改的一件事/etc/redis/redis.conf是更改daemonize yesdaemonize no。如果不进行更改,redis-server将会发生分支并将其自身守护进程化,父进程消失的情况。发生这种情况时,请upstart认为该进程已终止/停止,您将无法从内部控制该进程upstart

现在,您可以使用以下命令来控制您的redis-server

sudo start redis-server
sudo restart redis-server
sudo stop redis-server
Run Code Online (Sandbox Code Playgroud)

希望这对您有所帮助!


Zah*_*dri 10

这对我有用:

sudo service redis-server start
Run Code Online (Sandbox Code Playgroud)


小智 10

尝试这个 :

sudo service redis-server restart
Run Code Online (Sandbox Code Playgroud)


小智 9

这是连接到 redis 的更好方式。

首先,像这样检查redis服务器的IP地址。

ps -ef | Redis的

结果是“redis 1184 1 0 .... /usr/bin/redis-server 172.xxx:6379

然后你可以像这样使用 -h(hostname) 选项连接到 redis。

redis-cli -h 172.xxx


小智 7

当我尝试 cmd redis-cli 然后抛出“无法连接到 Redis at 127.0.0.1:6379: 连接被拒绝”时,我在 github 上找到了针对我的案例的解决方案

原因:值得注意的是,如果您在生产环境中,您可能希望在后台运行 Redis

您可以尝试下面的cmd来解决问题

redis-server --daemonize 是


Far*_*dLU 6

我被困在这个问题上很长时间了。经过多次尝试,我能够正确配置它。

引发错误的原因可能不同。我试图提供从这种情况中克服的原因和解决方案。确保您已redis-server正确安装。

  1. 6379 Port ufw 防火墙不允许。

    解决方法:输入以下命令sudo ufw allow 6379

  2. 该问题可能与redis用户的权限有关。可能是 redis 用户没有修改必要redis目录的权限。该redis用户应该在以下目录权限:

    • /var/lib/redis
    • /var/log/redis
    • /run/redis
    • /etc/redis

    要向redis用户授予所有者权限,请键入以下命令:

    • sudo chown -R redis:redis /var/lib/redis
    • sudo chown -R redis:redis /var/log/redis
    • sudo chown -R redis:redis /run/redis
    • sudo chown -R redis:redis /etc/redis.

    现在redis-server通过以下命令重新启动:

    sudo systemctl restart redis-server

希望这对某人有帮助。


mor*_*onz 6

在 Apple Silicon 上连接 Redis 时出错(Macbook Pro M1 - 2020 年 12 月),您只需知道两件事:

  1. 使用 sudo 运行 redis-server 将消除服务器启动错误

shell% sudo redis-server

  1. 为了将其作为服务“守护进程”运行,它将允许您在后台运行

shell% sudo redis-server --daemonize yes

使用以下步骤进行验证: shell% redis-cli ping

希望这对所有真正担心缺乏相关文档的 Macbook Pro M1 用户有所帮助。