イントロダクション#
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 をオブジェクトキャッシュとして使用します。