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.

ptr
  • 165
  • 2
  • 6

1 Answers1

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.

dshepherd
  • 148
  • 4