Using homebrew to install Redis but when i try to ping to Redis it show this error.
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Note : I try to turn off firewall and edit conf file also cannot. I using macOS Sierra and homebrew version 1.1.11
After installing redis
, type from terminal
:
redis-server
And Redis-Server will be started
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.
You need a config file at
/usr/local/etc/redis.conf
. Without this fileredis-server
will not start. You can copy over the default config file and modify it from there withcp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
You need
/usr/local/var/db/redis/
to exist. You can do this easily withmkdir -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.
If aftre install you need 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 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 to change daemonize yes
to daemonize no
. What happens if you don't change it is that 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 folowing commands to control your redis-server
:
sudo start redis-server
sudo restart redis-server
sudo stop redis-server
Hope this was helpful!
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
In my case, it was the password that contained some characters like '
, after changing it the server started without problems.
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.
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
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
来源:https://stackoverflow.com/questions/42857551/could-not-connect-to-redis-at-127-0-0-16379-connection-refused-with-homebrew