使用自制软件安装 Redis,但是当我尝试 ping Redis 时显示此错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
注意: 我尝试关闭防火墙并编辑 conf 文件,但仍然无法 ping。我正在使用 macOS Sierra 和自制版本 1.1.11
使用自制软件安装 Redis,但是当我尝试 ping Redis 时显示此错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
注意: 我尝试关闭防火墙并编辑 conf 文件,但仍然无法 ping。我正在使用 macOS Sierra 和自制版本 1.1.11
安装后redis
,输入 from terminal
:
redis-server
并且 Redis-Server 将被启动
我在试图弄清楚为什么我通过启动它后无法连接到 redis 时发现了这个问题brew services start redis
。
根据您的机器或安装的新鲜程度,您可能会缺少配置文件或 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
最后只需重新启动 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'
或者
Can't chdir to '/usr/local/var/db/redis/': No such file or directory
值得庆幸的是,日志使上述解决方案显而易见。
redis-server
吗?你当然可以。如果您运行,它只会占用一个终端或偶尔中断您的终端redis-server &
。它还将放在dump.rdb
您在 ( pwd
) 中运行它的任何目录中。我很生气不得不删除文件或在 git 中忽略它,所以我想我会让 brew 使用服务来完成工作。
如果安装后您需要一直运行redis
,只需输入终端:
redis-server &
在 Ubuntu 上使用 upstart 运行 redis
我一直在尝试了解如何在 Ubuntu 上从头开始设置系统。我刚刚安装redis
到盒子上,这就是我的做法以及一些需要注意的事项。
安装:
sudo apt-get install redis-server
这将创建一个redis
用户并init.d
为其安装脚本。由于upstart
现在是使用 init.d 的替代品,我想我应该将它转换为使用upstart
.
禁用默认init.d
脚本redis
:
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
upstart
现在您可以使用以下命令来控制您的redis-server
:
sudo start redis-server
sudo restart redis-server
sudo stop redis-server
希望这有帮助!
这对我有用:
sudo service redis-server start
这是连接到您的 redis 的更好方法。
首先,像这样检查redis服务器的ip地址。
ps -ef | grep redis
结果是一种“ redis 1184 1 0 .... /usr/bin/redis-server 172.xxx:6379
然后你可以像这样使用 -h(hostname) 选项连接到 redis。
redis-cli -h 172.xxx
尝试这个 :
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 月),您只需要知道 2 件事:
shell% sudo redis-server
shell% sudo redis-server --daemonize yes
使用以下步骤进行验证:
shell% redis-cli ping
希望这可以帮助所有真正担心缺乏这方面文档的 Macbook Pro M1 用户。
首先,您需要使用以下命令启动/启动所有 redis 节点,对所有 conf 文件一一进行。@注意:如果您正在设置集群,那么您应该有 6 个节点,3 个将是主节点,3 个将是从节点。redis-cli 将使用 --cluster 命令自动从 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
谢谢
redis-server --daemonize yes
我已经通过运行这个命令解决了这个问题。
我刚刚遇到了同样的问题,因为我在配置文件中使用了不正确的语法。我的意思是补充:
maxmemory-policy allkeys-lru
到我的配置文件,但只添加:
allkeys-lru
这显然阻止了 Redis 解析配置文件,这反过来又阻止了我通过 cli 连接。修复此语法允许我连接到 Redis。
在我的情况下,它是包含一些字符的密码,如'
更改后,服务器启动没有问题。
如果问题的问题是目录homebrew MacOS
上缺少某种权限,请参见此处的问题/usr/local/var/log
为了解决它,我删除/usr/local/var/log
并重新安装了redisbrew reinstall redis
就像Aaron一样,在我的案例中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根本无法启动。所以启动虚拟机解决了这个问题。
我试图将我在 wsl2 中运行的 Redis 与在 Windows 中运行的 vs 代码连接起来。
我列出了对我有用的东西以及我执行这些操作的顺序:
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
Also to run Redis in the background, the following command could be used.
redis-server --daemonize yes
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
ps -aux | grep redis
sudo vi /etc/redis/redis.conf.
注释以下行。
# bind 127.0.0.1 ::1
注意:恶意行为者将更难发出请求或访问您的服务器。确保您绑定到正确的 IP 地址网络。
希望它可以帮助某人。有关更多信息,请阅读以下文章。
https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/
就我而言,有人出现并错误地将 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 服务器没有启动,为什么它向我显示错误
Could not connect to Redis at 127.0.0.1:6379: Connection denied。
用于 Mac 的 Redis:
1- brew install redis
2- brew services 启动 redis
3- redis-cli ping
$ 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