无法在 127.0.0.1:6379 连接到 Redis:自制软件拒绝连接
Could not connect to Redis at 127.0.0.1:6379: Connection refused with homebrew
使用自制软件安装 Redis,但当我尝试 ping Redis 时显示此错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
注:
我试图关闭防火墙并编辑 conf 文件,但仍然无法 ping。
我正在使用 macOS Sierra 和自制软件版本 1.1.11
安装 redis
后,从 terminal
输入:
redis-server
Redis-Server 将启动
我在尝试弄清楚为什么在通过 brew services start redis
启动 redis 后无法连接到它时发现了这个问题。
tl;博士
根据您的机器或安装的新旧程度,您可能缺少配置文件或 Redis 默认目录。
您需要位于 /usr/local/etc/redis.conf
的配置文件。没有这个文件 redis-server
将无法启动。您可以复制默认配置文件并使用
从那里修改它
cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
您需要 /usr/local/var/db/redis/
才能存在。您可以使用
轻松做到这一点
mkdir -p /usr/local/var/db/redis
最后用brew services restart redis
重启redis。
你是怎么找到这个的!?
我浪费了很多时间试图弄清楚 redis 是否没有通过自制软件使用默认设置以及它在哪个端口上。服务具有误导性,因为即使 redis-server
尚未实际启动,brew services list
仍会将 redis 显示为 "started." 最好的方法是使用 brew services --verbose start redis
,它将向您显示日志文件在 /usr/local/var/log/redis.log
。往里看,我发现了确凿的证据
Fatal error, can't open config file '/usr/local/etc/redis.conf'
或
Can't chdir to '/usr/local/var/db/redis/': No such file or directory
谢天谢地,日志使上述解决方案显而易见。
我就不能运行 redis-server
吗?
你当然可以。如果您 运行 redis-server &
,它只会占用一个终端或偶尔中断您的终端。它还会将 dump.rdb
放在您 运行 中的任何目录中 (pwd
)。在 git 中不得不删除文件或忽略它让我很恼火,所以我想我应该让 brew 使用服务来完成工作。
我刚刚遇到了同样的问题,因为我在我的配置文件中使用了不正确的语法。我想添加:
maxmemory-policy allkeys-lru
到我的配置文件,但只添加了:
allkeys-lru
这显然阻止了 Redis 解析配置文件,这反过来又阻止了我通过 cli 进行连接。修复此语法使我能够连接到 Redis。
在我的例子中,是密码包含一些字符,如 '
,更改后服务器启动没有问题。
如果安装后您需要一直运行 redis
,只需在终端输入:
redis-server &
运行 在 Ubuntu
上使用 upstart 的 redis
我一直在努力了解如何在 Ubuntu 上从头开始设置系统。我刚刚将 redis
安装到盒子上,下面是我的安装方法和一些需要注意的事项。
要安装:
sudo apt-get install redis-server
这将创建一个 redis
用户并为其安装 init.d
脚本。由于 upstart
现在是 init.d 的替代品,我想我应该使用 upstart
.
将其转换为 运行
禁用 redis
的默认 init.d
脚本:
sudo update-rc.d redis-server disable
然后使用以下脚本创建/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
这是什么脚本 upstart
知道用什么命令 运行 启动进程。最后一行还告诉 upstart
如果它死了就继续尝试重生。
我必须在 /etc/redis/redis.conf
中更改的一件事是 daemonize yes
到 daemonize no
。如果您不更改它会发生什么,那么 redis-server
将分叉并自行守护进程,父进程就会消失。发生这种情况时,upstart
认为该进程有 died/stopped,您将无法从 upstart
.
中控制该进程
现在您可以使用以下命令来控制您的 redis-server
:
sudo start redis-server
sudo restart redis-server
sudo stop redis-server
希望对您有所帮助!
这是连接到您的 redis 的更好方式。
首先像这样查看redis服务器的ip地址
ps -ef | grep redis
结果有点像“redis 1184 1 0 .... /usr/bin/redis-server 172.x.x.x:6379
然后你可以像这样使用 -h(hostname) 选项连接到 redis。
redis-cli -h 172.x.x.x
homebrew MacOS
有这个问题,问题是 /usr/local/var/log
目录 see issue here
缺少某种权限
为了解决这个问题我删除了/usr/local/var/log
并重新安装了redisbrew reinstall redis
首先你需要up/start所有的redis节点使用下面的命令,一个一个的配置文件。
@注意:如果你正在设置集群,那么你应该有 6 个节点,3 个为主节点,3 个为 slave.redis-cli 将使用 --cluster 命令自动 select 6 个节点中的主节点和从节点如我的以下命令所示。
[xxxxx@localhost redis-stable]$ redis-server xxxx.conf
然后 运行
[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
上面的输出应该是这样的:
>>> Performing hash slots allocation on 6 nodes...
自动设置所有内容的第二种方法:
你可以使用 utils/create-cluster 脚本来设置你喜欢的每一件事
启动所有节点,创建集群
你关注 https://redis.io/topics/cluster-tutorial
谢谢
这对我有用:
sudo service redis-server start
就像 一样,在我的例子中 brew services list
声称 redis 是 运行,但事实并非如此。我在位于 /usr/local/var/log/redis.log
的日志文件中找到以下信息:
4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address
原来是由以下配置引起的:
bind 127.0.0.1 ::1 192.168.161.1
这是让我的 VMWare Fusion 虚拟机访问主机 macOS 上的 redis 服务器所必需的。但是,如果虚拟机没有启动,这个绑定失败导致redis根本就没有启动。于是启动虚拟机解决问题
试试这个:
sudo service redis-server restart
我纠结了好久。经过多次尝试,我能够正确配置它。
引发错误的原因可能多种多样。我正在尝试提供克服这种情况的原因和解决方案。确保您已正确安装 redis-server
。
6379 Port
不被 ufw 防火墙所允许。
解决方案:输入以下命令sudo ufw allow 6379
问题可能与 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
希望这对某些人有所帮助。
在 Apple Silicon 上连接 Redis 时出错(Macbook Pro M1 - 2020 年 12 月),您只需要知道两件事:
- 运行使用sudo的redis-server会消除服务器启动错误
shell% sudo redis-server
- 对于运行将其作为服务“守护进程”,它将允许您运行在后台
shell% sudo redis-server --daemonize yes
使用以下步骤验证:
shell% redis-cli ping
希望这对所有真正担心缺乏相关文档的 Macbook Pro M1 用户有所帮助。
就我而言,有人出现并将 redis.conf 文件错误地编辑为:
bind 127.0.0.1 ::1
bind 192.168.1.7
什么时候,真的需要这样(一行):
bind 127.0.0.1 ::1 192.168.1.7
我正在使用 Ubuntu 18.04
我刚刚在CMD中输入了这个命令
sudo systemctl start redis-server
它现在正在工作。所以我认为我的 redis 服务器没有启动,所以它向我显示错误
无法在 127.0.0.1:6379 连接到 Redis:连接被拒绝。
我试图在 Windows.
中从 vs 代码 运行ning 连接 wsl2 中的 Redis 运行ning
我列出了对我有用的方法以及我执行这些操作的顺序:
1) sudo ufw allow 6379
2) Update redis.conf to bind 127.0.0.1 ::1 192.168.1.7
3) sudo service redis-server restart
注意:这是我第一次在 wsl2 上安装 Redis,还没有 运行 一个命令。
让我知道它是否适合您。
谢谢
redis-server --daemonize yes
我已经通过 运行 这个命令解决了这个问题。
用于 Mac 的 Redis:
1- brew 安装 redis
2- brew 服务启动 redis
3- redis-cli 平
$ brew services start redis
$ brew services stop redis
$ brew services restart redis
午餐自动启动选项:
$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
# autostart activate
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# autostart deactivate
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
Redis conf 默认路径:/usr/local/etc/redis.conf
日期:2021 年 12 月
这个错误有几个原因。我读了一篇文章来为我解决这个问题。所以我就把检查的内容一一总结一下。
1 检查:Redis 服务器未启动
redis-server
Also to run Redis in the background, the following command could be used.
redis-server --daemonize yes
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
3。检查:资源使用
ps -aux | grep redis
4。配置设置限制
sudo vi /etc/redis/redis.conf.
注释以下行。
# bind 127.0.0.1 ::1
Note: It will be more difficult for malicious actors to make requests or gain access to your server. Make sure you're bound to correct IP address network.
希望对大家有所帮助。有关详细信息,请阅读以下文章。
https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/
使用自制软件安装 Redis,但当我尝试 ping Redis 时显示此错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
注: 我试图关闭防火墙并编辑 conf 文件,但仍然无法 ping。 我正在使用 macOS Sierra 和自制软件版本 1.1.11
安装 redis
后,从 terminal
输入:
redis-server
Redis-Server 将启动
我在尝试弄清楚为什么在通过 brew services start redis
启动 redis 后无法连接到它时发现了这个问题。
tl;博士
根据您的机器或安装的新旧程度,您可能缺少配置文件或 Redis 默认目录。
您需要位于
从那里修改它/usr/local/etc/redis.conf
的配置文件。没有这个文件redis-server
将无法启动。您可以复制默认配置文件并使用cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
您需要
轻松做到这一点/usr/local/var/db/redis/
才能存在。您可以使用mkdir -p /usr/local/var/db/redis
最后用brew services restart redis
重启redis。
你是怎么找到这个的!?
我浪费了很多时间试图弄清楚 redis 是否没有通过自制软件使用默认设置以及它在哪个端口上。服务具有误导性,因为即使 redis-server
尚未实际启动,brew services list
仍会将 redis 显示为 "started." 最好的方法是使用 brew services --verbose start redis
,它将向您显示日志文件在 /usr/local/var/log/redis.log
。往里看,我发现了确凿的证据
Fatal error, can't open config file '/usr/local/etc/redis.conf'
或
Can't chdir to '/usr/local/var/db/redis/': No such file or directory
谢天谢地,日志使上述解决方案显而易见。
我就不能运行 redis-server
吗?
你当然可以。如果您 运行 redis-server &
,它只会占用一个终端或偶尔中断您的终端。它还会将 dump.rdb
放在您 运行 中的任何目录中 (pwd
)。在 git 中不得不删除文件或忽略它让我很恼火,所以我想我应该让 brew 使用服务来完成工作。
我刚刚遇到了同样的问题,因为我在我的配置文件中使用了不正确的语法。我想添加:
maxmemory-policy allkeys-lru
到我的配置文件,但只添加了:
allkeys-lru
这显然阻止了 Redis 解析配置文件,这反过来又阻止了我通过 cli 进行连接。修复此语法使我能够连接到 Redis。
在我的例子中,是密码包含一些字符,如 '
,更改后服务器启动没有问题。
如果安装后您需要一直运行 redis
,只需在终端输入:
redis-server &
运行 在 Ubuntu
上使用 upstart 的 redis我一直在努力了解如何在 Ubuntu 上从头开始设置系统。我刚刚将 redis
安装到盒子上,下面是我的安装方法和一些需要注意的事项。
要安装:
sudo apt-get install redis-server
这将创建一个 redis
用户并为其安装 init.d
脚本。由于 upstart
现在是 init.d 的替代品,我想我应该使用 upstart
.
禁用 redis
的默认 init.d
脚本:
sudo update-rc.d redis-server disable
然后使用以下脚本创建/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
这是什么脚本 upstart
知道用什么命令 运行 启动进程。最后一行还告诉 upstart
如果它死了就继续尝试重生。
我必须在 /etc/redis/redis.conf
中更改的一件事是 daemonize yes
到 daemonize no
。如果您不更改它会发生什么,那么 redis-server
将分叉并自行守护进程,父进程就会消失。发生这种情况时,upstart
认为该进程有 died/stopped,您将无法从 upstart
.
现在您可以使用以下命令来控制您的 redis-server
:
sudo start redis-server
sudo restart redis-server
sudo stop redis-server
希望对您有所帮助!
这是连接到您的 redis 的更好方式。
首先像这样查看redis服务器的ip地址
ps -ef | grep redis
结果有点像“redis 1184 1 0 .... /usr/bin/redis-server 172.x.x.x:6379
然后你可以像这样使用 -h(hostname) 选项连接到 redis。
redis-cli -h 172.x.x.x
homebrew MacOS
有这个问题,问题是 /usr/local/var/log
目录 see issue here
为了解决这个问题我删除了/usr/local/var/log
并重新安装了redisbrew reinstall redis
首先你需要up/start所有的redis节点使用下面的命令,一个一个的配置文件。 @注意:如果你正在设置集群,那么你应该有 6 个节点,3 个为主节点,3 个为 slave.redis-cli 将使用 --cluster 命令自动 select 6 个节点中的主节点和从节点如我的以下命令所示。
[xxxxx@localhost redis-stable]$ redis-server xxxx.conf
然后 运行
[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
上面的输出应该是这样的:
>>> Performing hash slots allocation on 6 nodes...
自动设置所有内容的第二种方法: 你可以使用 utils/create-cluster 脚本来设置你喜欢的每一件事 启动所有节点,创建集群 你关注 https://redis.io/topics/cluster-tutorial
谢谢
这对我有用:
sudo service redis-server start
就像 brew services list
声称 redis 是 运行,但事实并非如此。我在位于 /usr/local/var/log/redis.log
的日志文件中找到以下信息:
4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address
原来是由以下配置引起的:
bind 127.0.0.1 ::1 192.168.161.1
这是让我的 VMWare Fusion 虚拟机访问主机 macOS 上的 redis 服务器所必需的。但是,如果虚拟机没有启动,这个绑定失败导致redis根本就没有启动。于是启动虚拟机解决问题
试试这个:
sudo service redis-server restart
我纠结了好久。经过多次尝试,我能够正确配置它。
引发错误的原因可能多种多样。我正在尝试提供克服这种情况的原因和解决方案。确保您已正确安装 redis-server
。
6379 Port
不被 ufw 防火墙所允许。解决方案:输入以下命令
sudo ufw allow 6379
问题可能与
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
希望这对某些人有所帮助。
在 Apple Silicon 上连接 Redis 时出错(Macbook Pro M1 - 2020 年 12 月),您只需要知道两件事:
- 运行使用sudo的redis-server会消除服务器启动错误
shell% sudo redis-server
- 对于运行将其作为服务“守护进程”,它将允许您运行在后台
shell% sudo redis-server --daemonize yes
使用以下步骤验证:
shell% redis-cli ping
希望这对所有真正担心缺乏相关文档的 Macbook Pro M1 用户有所帮助。
就我而言,有人出现并将 redis.conf 文件错误地编辑为:
bind 127.0.0.1 ::1
bind 192.168.1.7
什么时候,真的需要这样(一行):
bind 127.0.0.1 ::1 192.168.1.7
我正在使用 Ubuntu 18.04
我刚刚在CMD中输入了这个命令
sudo systemctl start redis-server
它现在正在工作。所以我认为我的 redis 服务器没有启动,所以它向我显示错误
无法在 127.0.0.1:6379 连接到 Redis:连接被拒绝。
我试图在 Windows.
中从 vs 代码 运行ning 连接 wsl2 中的 Redis 运行ning我列出了对我有用的方法以及我执行这些操作的顺序:
1) sudo ufw allow 6379
2) Update redis.conf to bind 127.0.0.1 ::1 192.168.1.7
3) sudo service redis-server restart
注意:这是我第一次在 wsl2 上安装 Redis,还没有 运行 一个命令。
让我知道它是否适合您。 谢谢
redis-server --daemonize yes
我已经通过 运行 这个命令解决了这个问题。
用于 Mac 的 Redis:
1- brew 安装 redis
2- brew 服务启动 redis
3- redis-cli 平
$ brew services start redis
$ brew services stop redis
$ brew services restart redis
午餐自动启动选项:
$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
# autostart activate
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# autostart deactivate
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
Redis conf 默认路径:/usr/local/etc/redis.conf
日期:2021 年 12 月
这个错误有几个原因。我读了一篇文章来为我解决这个问题。所以我就把检查的内容一一总结一下。
1 检查:Redis 服务器未启动
redis-server
Also to run Redis in the background, the following command could be used.
redis-server --daemonize yes
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
3。检查:资源使用
ps -aux | grep redis
4。配置设置限制
sudo vi /etc/redis/redis.conf.
注释以下行。
# bind 127.0.0.1 ::1
Note: It will be more difficult for malicious actors to make requests or gain access to your server. Make sure you're bound to correct IP address network.
希望对大家有所帮助。有关详细信息,请阅读以下文章。
https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/