3

I've installed redis-server on ubuntu 16.04 and I'm trying to connect to it via unix socket. I have commented out the bind and port directives in redis.conf and uncommented the unixsocket directives so I have:

# Accept connections on the specified port, default is 6379. # If port 0 is specified Redis will not listen on a TCP socket. # port 6379 # TCP listen() backlog. # # In high requests-per-second environments you need an high backlog in order # to avoid slow clients connections issues. Note that the Linux kernel # will silently truncate it to the value of /proc/sys/net/core/somaxconn so # make sure to raise both the value of somaxconn and tcp_max_syn_backlog # in order to get the desired effect. tcp-backlog 511 # By default Redis listens for connections from all the network interfaces # available on the server. It is possible to listen to just one or multiple # interfaces using the "bind" configuration directive, followed by one or # more IP addresses. # # Examples: # # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 # Specify the path for the Unix socket that will be used to listen for # incoming connections. There is no default, so Redis will not listen # on a unix socket when not specified. # unixsocket /var/run/redis/redis.sock unixsocketperm 770 

I've added my local user to the redis group, and restarted the redis service with sudo systemctl restart redis.serivce so the /var/run/redis/ folder looks like this:

drwxrwsr-x 2 redis redis 80 Apr 27 17:39 . drwxr-xr-x 34 root root 1160 Apr 27 16:40 .. -rw-r--r-- 1 redis redis 6 Apr 27 17:38 redis-server.pid srwxrwx--- 1 redis redis 0 Apr 27 17:38 redis.sock 

I would expect to be able to connect to the socket now using

$ redis-cli -s /var/run/redis/redis.sock 

however I get:

Could not connect to Redis at /var/run/redis/redis.sock: Permission denied not connected> 

weirdly running $ redis-cli gives me the default 127.0.0.1:6379> which ought to be unbound?

If I look at the redis process:

redis 18108 0.0 0.0 40136 6652 ? Ssl 17:45 0:00 /usr/bin/redis-server *:6379 

which looks to me like it's not even using the correct conf file and binding to *:6379. The /etc/systemd/system/redis.service file has

ExecStart=/usr/bin/redis-server /etc/redis/redis.conf 

So I'm confused as to why that's not the process being run, or why the permissions aren't allowing me to connect.

1 Answer 1

3

Have you logged out and back in again after adding your local user to the redis group? You need to do so to apply the changes.

1
  • A looooot of time could have been saved had I known about that :) Doh. Commented Apr 27, 2017 at 17:05

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.