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?

7 Answers 7

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 Commented Jun 26, 2014 at 15:27
  • 1
    "Warning: brew services is unsupported and will be removed soon."
    – user72923
    Commented 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. Commented Oct 4, 2014 at 5:50
  • 3
    brew doesn't support the "services" verb anymore as of 0.9.5
    – oDDsKooL
    Commented 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
    Commented 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
    Commented 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
    Commented 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
    Commented Nov 3, 2016 at 15:51
  • 2
    It's 2017 and I'm using Brew v1.3.6 and this works perfectly fine. Commented 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
    Commented 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 Commented 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
    Commented 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
    Commented May 1, 2018 at 17:44
  • Now it's the same as the accepted answer!! (You really should just delete this answer.)
    – robinCTS
    Commented 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. Commented 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
0

You can restart your redis server with brew services restart redis

if you want to change your redis configuration you can execute: brew info redis

to know where is your config file, in my case is inside /opt/homebrew/opt/redis/bin/redis-server /opt/homebrew/etc/redis.conf

there you can change your port or wherever you want, i just changed my default port because i was trying to use :6379 for other things and that was generating some issues with my server.

You must log in to answer this question.

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