使用 Homebrew 在 OS X 上启动 Redis 作为服务

使用 Homebrew 在 OS X 上启动 Redis 作为服务

我通过以下方式安装了 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 成为守护进程。检查一下,改成daemonizeno然后重试brew services

相关内容