イントロダクション#
Redis が Unix ソケットを使用すると、TCP/IP の代わりに OSI モデルで動作するため、パフォーマンスが約 25%向上します。
インストール#
Ubuntu 16.04 LTS を例にします。
- Redis のインストール
apt-get install redis-server
- 現在の Redis がどのユーザーで実行されているか確認する
root@host:~# sudo ps aux grep redis
sudo: unable to resolve host www.xx.com
redis 29409 0.0 0.8 37224 8796 ? Ssl 10:43 0:00 /usr/bin/redis-server 127.0.0.1:6379
Redis は redis ユーザーで実行されていることがわかります。
Apache
、Nginx
、PHP-FPM
が所属するユーザーグループに追加します。通常、ソフトウェアリポジトリからインストールする場合はwww-data
、コンパイルする場合はwww
ですが、必ずしもそうではありません。ここではwww-data
です。
usermod -g www-data redis
- Unix ソケットの場所を作成します。
mkdir -p /var/run/redis/
- 権限を設定します。
chown -R redis:www-data /var/run/redis
- 設定ファイルを変更します。私の場合は
/etc/redis/redis.conf
にあります。unixsocket
とunixsocketperm
の前の#
を削除し、unixsocketperm
の値を700
から777
に変更します。そうしないとキャッシュをクリアできません。
# 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 777
- 再起動します。
service redis-server restart
- 正常に実行されている場合、
ls -lh
コマンドを使用して次の結果が返されます。
root@host:~# ls -lh /var/run/redis
total 4.0K
-rw-r--r-- 1 redis www-data 6 Mar 14 10:56 redis-server.pid
srwx------ 1 redis www-data 0 Mar 14 10:56 redis.sock
WP の設定#
-
Redis Object Cacheプラグインをインストールします。
-
wp-config.php
ファイルの<?php
の後に次の行を追加します。順序を変更しないでください。
define('WP_REDIS_PATH', /var/run/redis/redis.sock
define('WP_REDIS_SCHEME', unix););
- Redis Object Cache プラグインは、TCP/IP ではなく Unix ソケットを使用する Redis をオブジェクトキャッシュとして使用します。