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 homebrewthat should be the correct location.
You’ll then need to load the file (one time) into launchd with launchctl:
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.