66

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?

64

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.

  • 2
    I had to re-install redis with brew to get it in the startup plist, then this worked fine – Stuart Nelson Jun 26 '14 at 15:27
  • 1
    "Warning: brew services is unsupported and will be removed soon." – user72923 Sep 13 '14 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. – Phuong Nguyen Oct 4 '14 at 5:50
  • 3
    brew doesn't support the "services" verb anymore as of 0.9.5 – oDDsKooL Oct 23 '14 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 '16 at 15:50
38

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

  • conflicting answer above says brew services is deprecated. – chovy Dec 8 '15 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 '15 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 '16 at 15:51
  • 2
    It's 2017 and I'm using Brew v1.3.6 and this works perfectly fine. – Ryan Taylor Oct 27 '17 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
  • 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 '16 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.

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

For Homebrew 1.5.14

redis-server

  • 4
    Welcome to Super User! This duplicates information present in another answer- can you differentiate it at all? :) – bertieb May 1 '18 at 17:44
  • Now it's the same as the accepted answer!! (You really should just delete this answer.) – robinCTS Jul 27 '18 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. – Miguel Coder Jul 27 '18 at 18:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.