我通过以下方式安装了 Redis brew install redis
,并尝试通过以下方式将其添加为服务:
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
这些没有产生任何错误;但是,Redis 似乎没有启动。如果我运行redis-cli ping
,我会得到Could not connect to Redis at 127.0.0.1:6379: Connection refused
。
我可以redis-server
在另一个终端窗口中手动运行,但我希望 Redis 在登录时自动启动。
我还尝试卸载 Redis,重新安装它,并用它brew services
来管理服务(brew services
对于我来说,安装 MongoDB 和 Cassandra 效果很好)。
我没见过其他人遇到这个问题,所以我不知道如何诊断。如果有人能提供建议,我将不胜感激!
答案1
确保您已经首先利用了以下服务:
brew tap homebrew/services
然后尝试:
brew services [start/stop/restart] redis
你也可以使用以下命令启动和停止 redis:
sudo launchctl start io.redis.redis-server
sudo launchctl stop io.redis.redis-server
为了让您的生活更轻松,您可以将这些命令的别名添加到您的 .bash_profile 中。
alias redisstart='sudo launchctl start io.redis.redis-server'
alias redisstop='sudo launchctl stop io.redis.redis-server'
然后你就可以通过输入redisstart
和来启动和停止 redis redisstop
。
另一种方法是将 redis 添加为后台服务:
sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist
然后将以下内容复制并粘贴到文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.redis.redis-server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/redis-server</string>
<string>/usr/local/etc/redis.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
答案2
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
答案3
你可能之前手动启动 redis 的时候修改过 conf 文件,让 redis 成为守护进程。检查一下,改成daemonize
,no
然后重试brew services