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

Joh*_*alt 5 mac-osx launchctl redis

我通过以下方式安装了 Redisbrew install redis并尝试通过以下方式将其添加为服务:

ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
Run Code Online (Sandbox Code Playgroud)

这些没有产生任何错误;但是,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 对我来说很好用)。

我没有看到其他人有这个问题,所以我不知道如何诊断。如果有人有任何建议,非常感谢!

sel*_*ncy 6

确保您首先使用了服务:

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'
Run Code Online (Sandbox Code Playgroud)

然后你可以通过输入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>
Run Code Online (Sandbox Code Playgroud)


小智 1

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
Run Code Online (Sandbox Code Playgroud)

  • 欢迎来到服务器故障!看来您可能具备在此处提供良好答案的知识,但请考虑阅读我们的帮助中心中的[如何写出良好答案?](http://serverfault.com/help/how-to-answer) 以及然后修改答案。从技术上讲,您的命令/代码/设置可能是解决方案,但欢迎一些解释和上下文。提前致谢。 (2认同)