If you’re developing on the mac using redis and want it to start automatically on boot, you’ll want to leverage the OSX
launchd system to run it as a User Daemon. A User Daemon is a non-gui program that runs in the background as part of the system. It isn’t associated with your user account. If you only want redis to launch when a particular user logs in, you’ll want to make a User Agent instead.
From the command line, create a plist file as root in the
/Library/LaunchDaemons directory with your favorite text editor:
sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist
Paste in the following contents and modify it to point it to wherever you’ve got
redis-server installed and optionally pass the location of a config file to it (delete the redis.conf line if you’re not using one):
<?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>
Make sure that you actually have a
redis.conf file at the location above. If you’ve installed it with homebrew that should be the correct location.
You’ll then need to load the file (one time) into launchd with
sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist
Redis will now automatically be started after every boot. You can manually start it without rebooting with:
sudo launchctl start io.redis.redis-server
You can also shut down the server with
sudo launchctl stop io.redis.redis-server
Or you could add these aliases to your bash/zsh rc file:
alias redisstart='sudo launchctl start io.redis.redis-server' alias redisstop='sudo launchctl stop io.redis.redis-server'
If you’re having some sort of error (or just want to watch the logs), you can just fire up
Console.app to watch the redis logs to see what’s going on.