MemCache对PHP页面的缓存加速优化

MemCache缓存加速的部署

MemCache的源码编译
  • 官网下载压缩包解压
    在这里插入图片描述
  • 将已经编译好的php加入到环境变量文件中,方便我们调用。
[root@server1 ~]# vim ~/.bash_profile 
[root@server1 ~]# source ~/.bash_profile 
[root@server1 ~]# php
php         php-cgi     php-config  phpize 

在这里插入图片描述
在这里插入图片描述

  • 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 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@server1 memcache-2.2.5]# ./configure 
[root@server1 memcache-2.2.5]# make && make install

在这里插入图片描述
在这里插入图片描述

php中添加memcache模块
[root@server1 memcache-2.2.5]# vim /usr/local/lnmp/php/etc/php.ini #编辑配置文件,加入memcache模块
[root@server1 memcache-2.2.5]# ps -ef | grep php
[root@server1 memcache-2.2.5]# /etc/init.d/php-fpm reload    #重启php服务
[root@server1 memcache-2.2.5]# php -m | grep memcache   #在php中过滤memcache模块,
[root@server1 memcache-2.2.5]# php -m | grep mysql    #在php中过滤mysql模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

memcached的配置
  • 下载并安装,查看安装路径。
[root@server1 memcache-2.2.5]# yum install memcached -y
[root@server1 memcache-2.2.5]# rpm -qa | grep memcache
[root@server1 memcache-2.2.5]# rpm -ql memcached

在这里插入图片描述在这里插入图片描述

  • 开启服务,查看服务的监听端口
[root@server1 memcache-2.2.5]# /etc/init.d/memcached start
[root@server1 memcache-2.2.5]# netstat -antlupe    #memcached开启的端口是11211

在这里插入图片描述

  • 显示11211端口是表示监视11211端口的所有主机,如果想要只设置监听本机可进行如下操作:
    注意:在企业中实际监听本机是不合理的。
[root@server1 memcache-2.2.5]# vim /etc/sysconfig/memcached 
[root@server1 memcache-2.2.5]# /etc/init.d/memcached reload

在这里插入图片描述
可以看到11211端口只对本机开启。
在这里插入图片描述

  • 我们将设置改回来,什么都不加。
    在这里插入图片描述在这里插入图片描述
Telnet的配置(实现远程连接服务器)

Telnet的定义:
Telnet协议是TCP/IP协议中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机的工作能力,在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制web服务器的方式。默认使用23端口。
Telnet提供远程登录功能,使得用户在本地主机上运行Telnet客户端,就可以登录到远端的Telnet服务器,在本地输入命令可以在服务器上运行,服务器把结果返回到本地,如果直接在服务器的控制台上操作,这样就可以在本地远程操作和控制服务器。

telnet的登录是:telnet IP 端口号

  • 下载telnet。
[root@server1 memcache-2.2.5]# yum install telnet -y

在这里插入图片描述

  • 登录并且查看。
[root@server1 memcache-2.2.5]# telnet localhost 11211

在这里插入图片描述

  • 参数含义解释

set key flags exptime bytes value
其中含义如下:
key:键值对中的key,用于查找缓存值
flags:可以包括键值对的整型参数,客户机用于它存储关于键值对的额外信息
exptime:在缓存中保持键值对的时间长度(以秒为单位,0表示永远)
bytes:在缓存中存储的字节数
value:存储的数值,可以理解为key-value中的value

举例:

set name 0 0 6    #第0个  缓存 时间不限 最多6个字符
westoshhh
CLIENT_ERROR bad data chunk   #长度超过设置的值 错误
ERROR

set name 0 0 6   
westos
STORED

set name 0 8 6    #第0个 8s缓存 最多6个字符
westos
STORED
get name
VALUE name 0 6
westos
END
get name    #缓存过期,被清理。
END

quit   #退出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试
  • 首先将nginx以及其他服务打开:
[root@server1 html]# ls
50x.html  index.html  index.php  memcache.php
[root@server1 html]# vim memcache.php 
[root@server1 html]# /usr/local/lnmp/nginx/sbin/nginx 
[root@server1 html]# netstat -ntlp

在这里插入图片描述

  • 修改配置文件:
[root@server1 memcache-2.2.5]# vim memcache.php 
[root@server1 memcache-2.2.5]# cp memcache.php /usr/local/lnmp/nginx/html/
[root@server1 memcache-2.2.5]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# vim memcache.php 

在这里插入图片描述

  • 浏览器中访问。

在这里插入图片描述
在这里插入图片描述

  • 在浏览器中多次刷新此页
    在这里插入图片描述
  • 再次在浏览器中查看,发现命中率已经提高到95+%。
    在这里插入图片描述
压力测试
  • 加速页面和没有进行加速页面的对比
  • 访问没有缓存的ab -c 10 -n 5000 http://172.25.24.1/index.php
    在这里插入图片描述
    可以看到访问时间近16s,失败的请求数也非常多。
  • 访问已经缓存了页面ab -c 10 -n 5000 http://172.25.24.1/example.php
    在这里插入图片描述
    在这里插入图片描述
    可以看到请求的时间大大缩短,请求失败的概率为0。
    注意:example.php页面之所以会被加速,是因为文件的内容中写了
[root@server1 html]# vim example.php 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值