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?

slhck
  • 223,558
  • 70
  • 607
  • 592
chovy
  • 1,165
  • 1
  • 8
  • 15

6 Answers6

73

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.

ken
  • 974
  • 1
  • 8
  • 6
46

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

microspino
  • 1,011
  • 8
  • 19
  • conflicting answer above says `brew services` is deprecated. – chovy Dec 08 '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 08 '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 03 '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
24

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
oDDsKooL
  • 341
  • 2
  • 4
  • 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.

slhck
  • 223,558
  • 70
  • 607
  • 592
chovy
  • 1,165
  • 1
  • 8
  • 15
1

For Homebrew 1.5.14

redis-server

Miguel Coder
  • 111
  • 4
  • 4
    Welcome to Super User! This duplicates information present in [another answer](https://superuser.com/a/1010357/461558)- can you differentiate it at all? :) – bertieb May 01 '18 at 17:44
  • Now it's the same as [the accepted answer](//superuser.com/a/504957)!! (You really should just delete this answer.) – robinCTS Jul 27 '18 at 03: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
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
Valkarth
  • 1
  • 1