阿里云
云栖社区2017年度内容特辑
发表主题 回复主题
  • 3756阅读
  • 1回复

[教程]WP 使用走 Unix Sockets 的 Redis 作为对象缓存

级别: 论坛版主
发帖
9277
云币
13831
— 本帖被 不靠谱贝贝 设置为精华(2017-06-01) —
前言 2F#DJN#  
   X[J?  
前面有介绍过使用 APCu 作为对象缓存的 Lcache,其优点就是不走 TCP/IP 已获得更好的性能。后来我发现 Redis 和 Memcached 其实也可以走 Unix Sockets 而避免走 TCP/IP 而带来性能瓶颈 "1z#6vw5a  
]US  
介绍 %4^NX@1jV  
p5`={'>-  
当 Redis 走 Unix Sockets 是在 OSI 模型中而没有哦组 TCP/IP,可以实现约 25% 的性能提升。 ]=]fIKd  
S1U>Q~ZPA  
Rj!9pwvT  
('1]f?:M  
=-E%vnU  
H:]'r5sw  
安装 yn|U<Hxl~H  
W *~[KdgC  
CXh >'K  
Ubuntu 16.04 LTS 为例, BPd *@l  
 J;GYo|8  
G'{*guYU  
一、安装 Redis
  1. apt-get install redis-server
@n^2UJ  
{xRO.699  
二、查看目前 Redis 运行在那个用户上 (y5 ]]l  
I78Q8W(5  
z<OfSS_]R  
  1. root@mf8.biz:~# sudo ps aux | grep redis
  2. sudo: unable to resolve host www.mf8.biz
  3. redis    29409  0.0  0.8  37224  8796 ?        Ssl  10:43   0:00 /usr/bin/redis-server 127.0.0.1:6379
FZ5 Ad&".@  
iC4rzgq  
可见 Redis 运行在 redis 上 &0RKNpw g  
N) '|l0x0  
@Px_\w  
三、添加到 Apache、Nginx 和 PHP-FPM 所在的用户组,一般来说软件源安装的都是 www-data,编译的都是 www,但是不绝对,我这里是在 www-data
  1. usermod -g www-data redis
$f AZ^   
ODKHI\U  
四、创建 unix socket 所在文件夹
  1. mkdir -p /var/run/redis/
 L0>7v  
GP0}I@>?  
五、赋予权限
  1. chown -R redis:www-data /var/run/redis
~F[JupU  
sI`oz|$  
六、修改配置文件,我的是在 /etc/redis/redis.conf +Uxt xl'  
将 unixsocket 和 unixsocketperm 前的 # 去掉,并将 unixsocketperm 的值由 700改为 777,否则将不能清理缓存 -u~AY#*  
7_`_iymR  
$GQ{Ai:VwF  
  1. # Specify the path for the Unix socket that will be used to listen for
  2. # incoming connections. There is no default, so Redis will not listen
  3. # on a unix socket when not specified.
  4. #
  5. unixsocket /var/run/redis/redis.sock
  6. unixsocketperm 777
iQvqifDmh  
8qwPk4  
J<MuWgx&  
七、重启
  1. service redis-server restart
7T?T0x3>  
p4@0Dz`Q  
八、如何正常运行的话,通过 ls -lh 命令查看会返回如下结果:  / !aVv  
 Sr+ &  
%<\tN^rP  
  1. root@MF8.BIZ:~# ls -lh /var/run/redis
  2. total 4.0K
  3. -rw-r--r-- 1 redis www-data 6 Mar 14 10:56 redis-server.pid
  4. srwx------ 1 redis www-data 0 Mar 14 10:56 redis.sock
  5. root@MF8.BIZ:~#
i2?TMM!Fe  
)<`/Aaie  
+T HBPEq  
WP设置 H(DI /"N  
y<m }dW6[\  
h y"=)n(  
一、安装 Redis Object Cache 插件 lh-zE5;  
*R8P brN  
m0]Lc{  
二、在 wp-config.php 文件的 <?php 后添加,顺序不能变: KNSMx<GP  
?:Rw[T@ l  
LT:8/&\  
  1. define('WP_REDIS_PATH', /var/run/redis/redis.sock);
  2. define('WP_REDIS_SCHEME', unix);
&X)^G#  
JPq' C$  
t]+h.  
=z#j9'n$@  
三、然后 Redis Object Cache 插件就会用走 Unix Socket 的 Redis 作为对象缓存而不是 TCP/IP 的了~ xd!GRJ<I  
m 3Do+!M[  
本帖最近评分记录: 1 条评分 云币 +1
jesuiszb 云币 +1 优秀文章-欢迎进行技术分享,感谢你的支持! 2017-06-01
级别: 论坛版主
发帖
1919
云币
3870
只看该作者 沙发  发表于: 2017-06-01
优秀文章-欢迎进行技术分享,感谢你的支持!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个