Could not connect to Redis at 127.0.0.1:6379: Connection refused with homebrew
Asked Answered
F

22

279

Using homebrew to install Redis but when I try to ping Redis it shows this error:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

Note : I tried to turn off firewall and edit conf file but still cannot ping. I am using macOS Sierra and homebrew version 1.1.11

Fadeout answered 17/3, 2017 at 12:27 Comment(0)
K
569

After installing redis, type from terminal:

redis-server

And Redis-Server will be started

Kaylee answered 17/3, 2017 at 13:20 Comment(8)
However, how do I stop it from listening to that port/host?Walkout
@AfolabiOlaoluwaAkinwumi Please Refer How can I stop redis-serverKaylee
For windows from Command Prompt, cd C:\Program Files\Redis and then redis-serverReynalda
how to run redis-server continuously in the background, I'm using ubuntu @KayleePhylis
@AATHITHRAJENDRAN, Check this answer, I hope it will helpKaylee
It helps to run brew install redis first (fyi)Ovariotomy
You have to add redis.exe path after installed it. You can add it from Control panel> System>A dvanced System Settings> Environment Variables> Path> Edit> New and then restart your system and enjoy it. My Redis path was: C:\Program Files\RedisRand
set & at the end of the command to run it in backgroundScorpio
R
63

I found this question while trying to figure out why I could not connect to redis after starting it via brew services start redis.

tl;dr

Depending on how fresh your machine or install is you're likely missing a config file or a directory for the redis defaults.

  1. You need a config file at /usr/local/etc/redis.conf. Without this file redis-server will not start. You can copy over the default config file and modify it from there with

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. You need /usr/local/var/db/redis/ to exist. You can do this easily with

    mkdir -p /usr/local/var/db/redis
    

Finally just restart redis with brew services restart redis.

How do you find this out!?

I wasted a lot of time trying to figure out if redis wasn't using the defaults through homebrew and what port it was on. Services was misleading because even though redis-server had not actually started, brew services list would still show redis as "started." The best approach is to use brew services --verbose start redis which will show you that the log file is at /usr/local/var/log/redis.log. Looking in there I found the smoking gun(s)

Fatal error, can't open config file '/usr/local/etc/redis.conf'

or

Can't chdir to '/usr/local/var/db/redis/': No such file or directory

Thankfully the log made the solution above obvious.

Can't I just run redis-server?

You sure can. It'll just take up a terminal or interrupt your terminal occasionally if you run redis-server &. Also it will put dump.rdb in whatever directory you run it in (pwd). I got annoyed having to remove the file or ignore it in git so I figured I'd let brew do the work with services.

Raphael answered 10/4, 2017 at 12:52 Comment(4)
thanks, this solved my problem on a laravel project where i was getting connection refused in abstractconnection.php line 155Interviewee
I was having an error in abstractconnection.php line 155 too! Crazy.Microphyte
Start with verbose did the thing for me. I was having an issue in redis.conf. ThanksIrretentive
brew services restart redis was key for me here, all other conf files etc. were set up correctly- the service apparently was just in some trouble!Wellstacked
A
35
redis-server --daemonize yes

I have solved this issue by running this command.

Academicism answered 31/10, 2021 at 5:52 Comment(1)
Usefull solution on ubuntu server after reloadingBettiebettina
Z
27

If after install you need to run redis on all time, just type in terminal:

redis-server &

Running redis using upstart on Ubuntu

I've been trying to understand how to setup systems from the ground up on Ubuntu. I just installed redis onto the box and here's how I did it and some things to look out for.

To install:

sudo apt-get install redis-server

That will create a redis user and install the init.d script for it. Since upstart is now the replacement for using init.d, I figure I should convert it to run using upstart.

To disable the default init.d script for redis:

sudo update-rc.d redis-server disable

Then create /etc/init/redis-server.conf with the following script:

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

respawn

What this is the script for upstart to know what command to run to start the process. The last line also tells upstart to keep trying to respawn if it dies.

One thing I had to change in /etc/redis/redis.conf is daemonize yes to daemonize no. What happens if you don't change it then redis-server will fork and daemonize itself, and the parent process goes away. When this happens, upstart thinks that the process has died/stopped and you won't have control over the process from within upstart.

Now you can use the following commands to control your redis-server:

sudo start redis-server
sudo restart redis-server
sudo stop redis-server

Hope this was helpful!

Zared answered 11/4, 2018 at 18:7 Comment(0)
Z
26

This work for me :

sudo service redis-server start
Zircon answered 26/2, 2020 at 12:7 Comment(1)
this still works on ubuntu 16.04 and redis 6.0.6, greatToggery
M
18

Date: Dec 2021

There is a couple of reason for this error. I read one article to fix the issue for me. So I just summarize what to check one by one.

1 Check: Redis-Server not Started

redis-server

Also to run Redis in the background, the following command could be used.

redis-server --daemonize yes

2. Check: Firewall Restriction

sudo ufw status (inactive)
sudo ufw active (for making active it might disable ssh when first time active. So enable port 22 to access ssh.)
sudo ufw allow 22
sudo ufw allow 6379

3. Check: Resource usage

ps -aux | grep redis

4. Config setup restriction

sudo vi /etc/redis/redis.conf.

Comment the following line.

# bind 127.0.0.1 ::1

Note: It will be more difficult for malicious actors to make requests or gain access to your server. Make sure you're bound to correct IP address network.

Hope it helps someone. For more information read the following article.

https://bobcares.com/blog/could-not-connect-to-redis-connection-refused/

Mccoy answered 14/12, 2021 at 10:41 Comment(0)
S
10

Try this :

sudo service redis-server restart
Samos answered 4/5, 2020 at 6:19 Comment(1)
I am using Windows WSL Ubuntu, and keeps getting errors in my terminal. npm ERR! code ELIFECYCLE npm ERR! errno 1 So tried everything on the top, it does not work especially in Windows. That's why tried restarting the redis service on the Ubuntu and works perfectly fine! That's all.Samos
B
9

It's the better way to connect to your redis.

At first, check the ip address of redis server like this.

ps -ef | grep redis

The result is kind of " redis 1184 1 0 .... /usr/bin/redis-server 172.x.x.x:6379

And then you can connect to redis with -h(hostname) option like this.

redis-cli -h 172.x.x.x

Bagasse answered 28/11, 2018 at 1:57 Comment(0)
P
7

I found solution on github with my case when I try cmd redis-cli then throw "Could not connect to Redis at 127.0.0.1:6379: Connection refused"

cause: Worth noting, if you're in production, you might want to run Redis in the background

you can try cmd below to resolve issue

redis-server --daemonize yes

Persuasive answered 8/5, 2023 at 4:17 Comment(1)
Thank you, this helped me start radis on my local machine running ubuntu 20.04Janiculum
G
6

I was stuck on this for a long time. After a lot of tries I was able to configure it properly.

There can be different reasons of raising the error. I am trying to provide the reason and the solution to overcome from that situation. Make sure you have installed redis-server properly.

  1. 6379 Port is not allowed by ufw firewall.

    Solution: type following command sudo ufw allow 6379

  2. The issue can be related to permission of redis user. May be redis user doesn't have permission of modifying necessary redis directories. The redis user should have permissions in the following directories:

    • /var/lib/redis
    • /var/log/redis
    • /run/redis
    • /etc/redis

    To give the owner permission to redis user, type the following commands:

    • sudo chown -R redis:redis /var/lib/redis
    • sudo chown -R redis:redis /var/log/redis
    • sudo chown -R redis:redis /run/redis
    • sudo chown -R redis:redis /etc/redis.

    Now restart redis-server by following command:

    sudo systemctl restart redis-server

Hope this will be helpful for somebody.

Gnathic answered 8/12, 2020 at 23:21 Comment(0)
D
6

Error connecting Redis on Apple Silicon( Macbook Pro M1 - Dec 2020), you have to just know 2 things:

  1. Run the redis-server using a sudo will remove the server starting error

shell% sudo redis-server

  1. For running it as a service "daemonize" it will allow you to run in the background

shell% sudo redis-server --daemonize yes

Verify using below steps: shell% redis-cli ping

Hope this helps all Macbook Pro M1 users who are really worried about lack of documentation on this.

Deprecate answered 4/1, 2021 at 15:1 Comment(1)
Thanks, I am on an Intel MacBook and this worked for me. first, run redis-server --daemonize yes and then redis-cli ping for a pong or just redis-cli to run quick commands in the terminal.Christlike
B
4

Actually you need to run "redis-server &" after instalation to start the service, when you only run "redis-server" the service runs in undetached mode. emphasis on "&"

Buttermilk answered 19/11, 2022 at 11:1 Comment(0)
C
3

First you need to up/start the all the redis nodes using below command, one by one for all conf files. @Note : if you are setting up cluster then you should have 6 nodes, 3 will be master and 3 will be slave.redis-cli will automatically select master and slave out of 6 nodes using --cluster command as shown in my below commands.

[xxxxx@localhost redis-stable]$ redis-server xxxx.conf 

then run

[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

output of above should be like:

    >>> Performing hash slots allocation on 6 nodes...

2nd way to set up all things automatically: you can use utils/create-cluster scripts to set up every thing for you like starting all nodes, creating cluster you an follow https://redis.io/topics/cluster-tutorial

Thanks

Crowley answered 11/1, 2019 at 3:10 Comment(0)
M
2

I just had this same problem because I had used improper syntax in my config file. I meant to add:

maxmemory-policy allkeys-lru

to my config file, but instead only added:

allkeys-lru

which evidently prevented Redis from parsing the config file, which in turn prevented me from connecting through the cli. Fixing this syntax allowed me to connect to Redis.

Monck answered 18/8, 2017 at 11:40 Comment(0)
F
2

Had that issue with homebrew MacOS the problem was some sort of permission missing on /usr/local/var/log directory see issue here

In order to solve it I deleted the /usr/local/var/log and reinstall redis brew reinstall redis

Free answered 1/12, 2018 at 0:12 Comment(0)
T
2

I was trying to connect my Redis running in wsl2 from vs code running in Windows.

I have listed down what worked for me and the order in which I have performed these actions:

1) sudo ufw allow 6379
2) Update redis.conf to bind 127.0.0.1 ::1 192.168.1.7
3) sudo service redis-server restart

NOTE: This is the first time I have installed Redis on wsl2 and have not run a single command yet.

Let me know if it works for you. Thanks.

Turnspit answered 18/8, 2021 at 17:15 Comment(0)
E
2

My soulution just was to systemctl enable redis-server

Ernesternesta answered 29/10, 2023 at 10:35 Comment(0)
D
1

In my case, it was the password that contained some characters like ', after changing it the server started without problems.

Deemphasize answered 28/1, 2018 at 6:8 Comment(0)
C
1

Just like Aaron, in my case brew services list claimed redis was running, but it wasn't. I found the following information in my log file at /usr/local/var/log/redis.log:

4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address

That turns out to be caused by the following configuration:

bind 127.0.0.1 ::1 192.168.161.1

which was necessary to give my VMWare Fusion virtual machine access to the redis server on macOS, the host. However, if the virtual machine wasn't started, this binding failure caused redis not to start up at all. So starting the virtual machine solved the problem.

Circumscissile answered 28/2, 2020 at 8:14 Comment(0)
E
1

I am using Ubuntu 18.04 I have just entered this command in CMD sudo systemctl start redis-server And it is now working. so I think my Redis server was not started which is why it was showing me the error Could not connect to Redis at 127.0.0.1:6379: Connection refused.

Everara answered 23/3, 2021 at 19:45 Comment(0)
C
1

Redis for Mac:

1- brew install redis
2- brew services start redis
3- redis-cli ping

$ brew services start redis 
$ brew services stop redis
$ brew services restart redis

Lunch autostart options:

$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
# autostart activate
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# autostart deactivate
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

Redis conf default path : /usr/local/etc/redis.conf

Commend answered 16/11, 2021 at 13:29 Comment(0)
H
0

In my case, someone had come along and incorrectly edited the redis.conf file to this:

bind 127.0.0.1 ::1
bind 192.168.1.7

when, it really needed to be this (one line):

bind 127.0.0.1 ::1 192.168.1.7
Hulbert answered 7/1, 2021 at 16:15 Comment(1)
This is on a new install though, so I don't think the issue is a weird redis.conf.Rondi

© 2022 - 2024 — McMap. All rights reserved.