如何配置Memcached高速缓存,加快wordpress的速度
Posted huangcong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置Memcached高速缓存,加快wordpress的速度相关的知识,希望对你有一定的参考价值。
Memcached是什么
Memcached是一种高性能的分布式内存对象缓存系统。在动态应用,Memcached既能提高访问的速度,同时还减低了数据库的负载。DangaInteractive为提升LiveJournal.com的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由Web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。
WordPress支持Memcached吗
是的,WordPress默认支持ObjectCache,所以在WordPress实现Memcached就是使用Memcached把WordPress的ObjectCache写到内存中去,下次直接从内存中读取。相比直接从数据库去读取数据,或者从ObjectCache数据存到文件,然后从硬盘中读取,Memcached有很大的速度优势。
大家直接看下上面的对比图就能很清楚的看到,Memcached之后的缓存对象的命中率,可以看出命中率是非常高,接近97%,基本上可以保证所有数据都是从能内存中取,所以使用Memcached进行缓存是非常有效的。
配置服务器Memcached服务
1.服务器安装Memcached,官网上并未提供Memcached的Window平台安装包,我们可以下链接来下载,你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可
32位系统1.2.5版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-1.2.5-win32-bin.zip
32位系统1.2.6版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-1.2.6-win32-bin.zip
32位系统1.4.4版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-win32-1.4.4-14.zip
64位系统1.4.4版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-win64-1.4.4-14.zip
32位系统1.4.5版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-1.4.5-x86.zip
64位系统1.4.5版本:https://www.svlik.com/wp-content/uploads/2017/12/memcached-1.4.5-amd64.zip
在1.4.5版本以前memcached可以作为一个服务安装,而在1.4.5及之后的版本删除了该功能。因此我们以下介绍两个不同版本1.4.4及1.4.5的不同安装方法:
memcached<1.4.5版本安装
1、解压下载的安装包到指定目录,可以是C盘也可以是D盘,本站以C盘根目录为例来说,其他盘符的同理操作。
2、在1.4.5版本以前memcached可以作为一个服务安装,使用管理员权限运行以下命令:
第一步:用win+r打开cmd输入cd c:/进入你解压Memcached所在的盘符
第二步:再输入cd memcached进入解压盘符的Memcached文件夹
第三步:再输入memcached.exe -d install安装Memcached为系统服务
第四步:启动Memcached服务输入memcached.exe -d start
打开服务器的任务管理器,如果看到Memcached.exe的进程,就说明服务已经启动,每次服务器启动都会自动启动。
同理如果需要停止或者卸载Memcached服务,需要执行以下2条命令
c:\memcached\memcached.exe -d stop //停止Memcached服务
c:\memcached\memcached.exe -d uninstall //卸载Memcached服务
memcached的配置项可以在注册表的如下路径来修改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached
memcached使用的缓存内存配置修改ImagePath,执行以下命令
c:\memcached\memcached.exe -d runservice -m 512
此外我们还可以通过使用 "c:\memcached\memcached.exe -h" 命令查看更多的参数配置。
memcached >= 1.4.5 版本安装
memcached1.4.5 版本之后,memcached 不能作为服务来运行,需要使用任务计划中来开启一个普通的进程,在 window 启动时设置 memcached自动执行。
我们使用管理员身份执行以下命令将 memcached 添加来任务计划表中:
schtasks /create /sc onstart /tn memcached /tr "‘c:\memcached\memcached.exe‘ -m 512"
删除 memcached 的任务计划可以执行以下命令:
schtasks /delete /tn memcached
到此windows服务器的Memcached配置已经完成,接下来就是配置Memcached的php扩展
配置服务器Memcached扩展
官方地址:http://pecl.php.net/package/memcache/3.0.8/windows
貌似目前memcache的windowsphp扩展只支持到php5.6版,对于php7.0版本的我都没有去研究测试,梵天网目前使用的也是php5.6版本,这里有个ts和nts版本的选择,大家可以在网站新建一个phpinfo.php文件,里面加入 <?php phpinfo(); ?>,用浏览器打开这个phpinfo.php,就可以看到网站的php相关信息,打开这个页面。用CTRL+F查找 Thread Safe,如下图
如果显示disabled 那么我们就选择nts版本,如果选择enabled 那么就选择ts版本
顺便普及下ts和nts的区别
Ts与nts的区别:
Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
ISAPI执行php选择ts ,FastCGI执行php请选择nts
将下载好的php_memcache.dll到你php的ext目录下,如果你的服务器是多版本php,请一定选择好你网站的php版本的ext目录下。
再打开php下面PHP.ini进行配置,
在PHP的配置文件中:php.ini 的底部加上以下的代码:
[memcache]
extension = php_memcache.dll
4.重新启动IIS,然后查看一下phpinfo.php,如果有memcache这个项目,那么就恭喜安装成功!
接下来就是全文的重点,wordpress如何配置memcache缓存
wordpress配置memcache缓存
下载 WordPress Memcached 插件:http://wordpress.org/extend/plugins/memcached/
下载好这个object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/。
WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。
到此整个教程结束,大楷的总结下 主要三大步
1. 服务器配置memcached服务 2.服务器安装memcached PHP扩展3.下载wordpressd的Memcached插件
Memcached还有其他的一些常用的命令如下
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
来源:https://www.svlik.com/994.html
以上是关于如何配置Memcached高速缓存,加快wordpress的速度的主要内容,如果未能解决你的问题,请参考以下文章
Nginx使用教程:使用Nginx缓存之Memcached缓存