一.MemCache缓存加速的部署
1.MemCache的源码编译
- (1)官网下载压缩包并进行解压
- (2)将已经编译完成的php二进制命令加入环境变量中方便调用
[root@server1 memcache-2.2.5]# vim ~/.bash_profile
[root@server1 memcache-2.2.5]# source ~/.bash_profile
- (3)编译汇编
memcache的编译汇编不是直接使用./configure,而是使用phpize生成configure文件,然后再进行编译汇编 - phpize是用来扩展php扩展模块的。通过phpize可以建立php的外挂模块,可以在原来编译好的php中加入memcached的扩展模块
- phpize工具是再php的安装目录下,对应了但是的php环境,所以是要根据该php配置情况生成configure文件,必须在要进行扩展的目录下进行phpize,则configure就会在这个目录下。
[root@server1 memcache-2.2.5]# phpize
[root@server1 memcache-2.2.5]# ./configure
[root@server1 memcache-2.2.5]# make && make install
2.php中添加memcache模块
[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# vim php.ini
[root@server1 etc]# /etc/init.d/php-fpm reload
[root@server1 etc]# php -m #查看php的模块
[root@server1 etc]# php -m | grep memcache #在php模块中过滤memcache模块,发现同时php也支持数据库模块
3.memcached的配置
- (1)安装工具并启动
[root@server1 etc]# yum install memcached -y
[root@server1 etc]# /etc/init.d/memcached start
- (2)查看监听端口(默认11211)
- (3)显示11211端口是表示监视11211端口的所有主机,如果想要只设置监听本机可进行如下操作
注意:在企业中实际监听本机是不合理的。
文件编辑内容如下:
重启服务查看端口是否改变
- (4)将memcache的测试文件复制到nginx的默认发布目录下
[root@server1 ~]# cd memcache-2.2.5
[root@server1 memcache-2.2.5]# cp memcache.php example.php /usr/local/lnmp/nginx/html/
- (5)设置memcache的密码
[root@server1 html]# vim memcache.php
文件编辑内容如下:
3.telnet配置(实现远程连接服务器)
- Telnet的定义:
Telnet协议是TCP/IP协议中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机的工作能力,在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制web服务器的方式。默认使用23端口 - Telnet提供远程登录功能,使得用户在本地主机上运行Telnet客户端,就可以登录到远端的Telnet服务器,在本地输入命令可以在服务器上运行,服务器把结果返回到本地,如果直接在服务器的控制台上操作,这样就可以在本地远程操作和控制服务器。
- telnet的登录是:telnet IP 端口号
- (1)下载telnet
[root@server1 html]# yum install telnet -y
- (2)登录并且查看
set key flags exptime bytes value
其中含义如下:
key:键值对中的key,用于查找缓存值
flags:可以包括键值对的整型参数,客户机用于它存储关于键值对的额外信息
exptime:在缓存中保持键值对的时间长度(以秒为单位,0表示永远)
bytes:在缓存中存储的字节数
value:存储的数值,可以理解为key-value中的value
4.测试
- (1)在浏览器中登录
注:可能会出现的问题: - 登录不成功可能是因为在配置文件中设置了只监听本机,所以其它主机登录时就会拒绝
解决如下:
vim /etc/sysconfig/memcached
- 在memcache.php中没有设置memcache的服务器没有注释
会出现下面错误
解决如下:
[root@server1 html]# vim memcache.php
问题解决后再次刷新页面:显示如下
- 在浏览器中多次刷新测试页
http://172.25.254.1/example.php
- 再次刷新memcache.php发现命中率进一步提高已经达到99%
- (2)压力测试:加速页面和没有进行加速页面的对比
a.安装测试时所用命令的软件
[root@server1 html]# yum install httpd-tools-2.2.15-29.el6_4.x86_64 -y
b.访问没有缓存的index.php
[root@server1 html]# ab -c 10 -n 5000 http://172.25.254.1/index.php
可以看到所用的时间及出错的报的个数
c.访问已经缓存了的example.php
[root@server1 html]# ab -c 10 -n 5000 http://172.25.254.1/example.php
可以看到错误的包为0,错误率基本为0