Ubuntu 16.04にredis-serverをインストールしましたが、unixソケット経由でそれに接続しようとしています。 redis.confのbind
およびport
ディレクティブをコメントアウトし、unixsocket
ディレクティブのコメントを解除したので、次のようになります。
# 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
ローカルユーザーをredisグループに追加し、Sudo systemctl restart redis.serivce
を使用してredisサービスを再起動したので、/var/run/redis/
フォルダーは次のようになります。
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
今使ってソケットに接続できると思います
$ redis-cli -s /var/run/redis/redis.sock
しかし私は得る:
Could not connect to Redis at /var/run/redis/redis.sock: Permission denied
not connected>
奇妙なことに$ redis-cli
を実行すると、バインドされていないはずのデフォルトの127.0.0.1:6379>
が表示されますか?
Redisプロセスを見ると:
redis 18108 0.0 0.0 40136 6652 ? Ssl 17:45 0:00 /usr/bin/redis-server *:6379
これは、正しいconfファイルを使用しておらず、*:6379にバインドしていないように見えます。 /etc/systemd/system/redis.service
ファイルには
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
そのため、なぜそれが実行中のプロセスではないのか、またはアクセス許可によって接続が許可されないのかについて混乱しています。
ローカルユーザーをredisグループに追加した後、ログアウトして再度ログインしましたか? 変更を適用 に行う必要があります。