使用Unix Sockets的Redis作为对象缓存来加速wordpress站点

2017-04-02T19:35:00
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »

介绍

当 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 上

三、添加到 ApacheNginxPHP-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
unixsocketunixsocketperm 前的 # 去掉,并将 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 的了

原文地址:WP 使用走 Unix Sockets 的 Redis 作为对象缓存