介紹#
當 Redis 走 Unix Sockets 是在 OSI 模型中而沒有使用 TCP/IP,可以實現約 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 socket 所在資料夾
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 外掛就會使用走 Unix Socket 的 Redis 作為物件快取而不是 TCP/IP 的了