78

I used brew to install redis (a key/value store database server) for my node.js app.

brew install redis

However, it seems to disappear and is very volatile. Because I'm using redis as my session store, I need to be able to quickly restart it on my mac when this happens.

How do I restart redis that I installed with brew?

6 Answers 6

74

update

brew services expired due to no one want to maintain it. check below: https://github.com/Homebrew/homebrew/issues/28657

check launchctl function instead.

or lunchy

So instead of:

launchctl load ~/Library/LaunchAgents/io.redis.redis-server.plist

you can do this:

lunchy start redis

and:

lunchy ls

references: https://github.com/eddiezane/lunchy

It used to be able to use as below:

brew services restart redis

should be the restart command You want. You can also run

brew services list

which will give you list of your brew services.

6
  • 2
    I had to re-install redis with brew to get it in the startup plist, then this worked fine Jun 26, 2014 at 15:27
  • 1
    "Warning: brew services is unsupported and will be removed soon."
    – user72923
    Sep 13, 2014 at 17:25
  • 2
    It's pretty dumb to remove such useful shortcut. But it's buggy by the way. I can stop redis with brew services, but after that I'm unable to start it again. Oct 4, 2014 at 5:50
  • 3
    brew doesn't support the "services" verb anymore as of 0.9.5
    – oDDsKooL
    Oct 23, 2014 at 6:38
  • 4
    Please note that brew does support the the services command now via a tap. See the answer below, it is a more relevant answer now.
    – GrayedFox
    Nov 3, 2016 at 15:50
49

As of Dec-7-2015 You can use brew services.

You need to brew tap homebrew/services and then thw following will work as expected:

install brew install redis

start brew services start redis

stop brew services stop redis

restart brew services restart redis

More info here: https://github.com/Homebrew/homebrew-services

4
  • conflicting answer above says brew services is deprecated.
    – chovy
    Dec 8, 2015 at 10:20
  • 5
    @chovy They were deprecated because of lack of maintenance, but are now back again as a brew tap. As you can see last commit is from 27 days ago.
    – microspino
    Dec 8, 2015 at 11:28
  • 3
    This is a more relevant and up to date answer now than the above ones, and faster to implement than going manual launchctl way.
    – GrayedFox
    Nov 3, 2016 at 15:51
  • 2
    It's 2017 and I'm using Brew v1.3.6 and this works perfectly fine. Oct 27, 2017 at 21:42
23

Brew doesn't support the services command anymore.

The recommended way is to use os x's launchctl command.

First you need to setup redis as a service managed by launchctl:

$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents

Then you can use launchctl load/ launchctl unload to start/stop the service:

$ # start redis server
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
$
$ # stop redis server
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
1
  • brew 0.9.5 support services, here they are $ brew --version Homebrew 0.9.5 (git revision bf22; last commit 2016-03-06) $ brew services list Name Status User Plist postgresql stopped redis stopped $
    – AMIC MING
    Mar 22, 2016 at 19:14
19

I found all these options listed in brew package (brew info redis) to be very buggy. For example redis throws a bunch of errors if it isn't started with root. I ended up just doing the direct call with sudo and removing launchctl files.

sudo redis-server /usr/local/etc/redis.conf

I was hoping there was a way to easily restart redis from the command line, but that doesn't seem possible. Therefore, I run with daemon mode set to 'no' and watch it log to stdout, then I can kill it easily.

2
  • 1
    I've appended this command with '& disown' to background and detach from the process Jan 2, 2014 at 19:36
  • 2
    See the other answer that uses launchctl, it works and is supported now by the brew recipe.
    – oDDsKooL
    Oct 23, 2014 at 6:46
1

For Homebrew 1.5.14

redis-server

3
  • 4
    Welcome to Super User! This duplicates information present in another answer- can you differentiate it at all? :)
    – bertieb
    May 1, 2018 at 17:44
  • Now it's the same as the accepted answer!! (You really should just delete this answer.)
    – robinCTS
    Jul 27, 2018 at 3:58
  • no it's not. He included the path to a conf file. Clearly not the same, and not required. I know I don't want to type the path to a conf file every time I start and stop Redis and I think anyone else reading this(besides you) would find that valuable. Jul 27, 2018 at 18:31
0

If you are successfully running brew services start redis or brew services restart redis, then seeing "Could not connect to Redis at 127.0.0.1:6379: Connection refused" when attempting to run redis-cli, you should verify the existence of your redis configuration file.

You can run touch /usr/local/etc/redis.conf or similar to create an empty configuration file.

Then run brew services restart redis and redis-cli, then voila!

127.0.0.1:6379> PING
PONG

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .