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

一、相关概念:

1.Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻
数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached 基于一个存储键/值对的 hashmap(hash表)

2.Memcached 是一个自由、源码开放、高性能、分布式内存对象缓存系统,目的在
于通过减轻数据库负载来使动态 Web 应用程序提速

3.Memcached 是一个在内存中对任意的数据(比如字符串,对象等)所使用的 key-value存储,数据可以来自数据库调用,API 调用,或者页面渲染的结果

4.Memcached 设计理念就是小而强大,它简单的设计促进了快速部署、易于开发,并
解决面对大规模的数据缓存的许多难题,所开放的 API 能用于大部分流行的程序语言

5.MemCache和memcached的区别
MemCache是这个项目的名称,而memcached是他服务器端的主程序的文件名

二、配置过程:

1.下载一个memcache的安装包,解压

[root@server1 ~]# tar zxf memcache-2.2.5.tgz 
[root@server1 ~]# ls

在这里插入图片描述
2.将之前平缓坡编译完成的二进制命令加入到环境变量中,可以直接调用php命令

[root@server1 ~]# vim ~/.bash_profile 
[root@server1 ~]# 
[root@server1 ~]# source ~/.bash_profile 

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin

在这里插入图片描述
在这里插入图片描述
php命令现在可以自动补齐

[root@server1 ~]# php
php         php-cgi     php-config  phpize  

在这里插入图片描述
3.创建一个预编译环境并对memcache的源码包进行编译
(1)创建预编译环境

[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]# ls

在这里插入图片描述
注:phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize

phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件,建立一个configure文件。必须在一个目录下去运行phpize,那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下

(2)编译

[root@server1 memcache-2.2.5]# ./configure
[root@server1 memcache-2.2.5]# make && make install
[root@server1 memcache-2.2.5]# ls

在这里插入图片描述
在这里插入图片描述
(3)安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.在php文件中添加memcache模块

[root@server1 memcache-2.2.5]# cd
[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini
[root@server1 etc]# vim php.ini

 873 extension=memcache.so

在这里插入图片描述
在这里插入图片描述
重新加载php-fpm服务

  [root@server1 etc]# /etc/init.d/php-fpm reload
    Reload service php-fpm  done

在这里插入图片描述
5.安装memcache工具,开启memcache服务

[root@server1 etc]# cd 
[root@server1 ~]# yum install -y memcache-2.2.5
[root@server1 ~]# /etc/init.d/memcached start
Starting memcached:                                        [  OK  ]
[root@server1 ~]# netstat -tnlp

在这里插入图片描述
在这里插入图片描述
6.安装telnet工具,测试

(1)安装telnet工具

[root@server1 ~]# yum install -y telnet
[root@server1 ~]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
stats   

在这里插入图片描述
在这里插入图片描述(2)创建westos,查看,没有失效,删除,再次查看失效,退出(quit)

0      0       6
编号 缓存时间   限制的字符数

在这里插入图片描述

(3)再次创建为westos 保存时间为10秒,10秒内查看没有失效,10秒后查看失效

[root@server1 ~]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
set name 0 10 6     ##设置缓存时间为10秒
westos              ##名字
STORED
get name            ##10秒内查看
VALUE name 0 6
westos
END
get name           ##10秒后查看
END
quit              ##退出
Connection closed by foreign host.

在这里插入图片描述
7.将的是文件复制到/usr/local/lnmp/nginx/html/文件下
在这里插入图片描述

[root@server1 memcache-2.2.5]# cp example.php memcache.php /usr/local/lnmp/nginx/html/
[root@server1 memcache-2.2.5]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# ls

在这里插入图片描述
(1)修改memcache的密码和访问地址

[root@server1 html]# vim memcache.php

在这里插入图片描述
在这里插入图片描述
重新加载服务
在这里插入图片描述
(2)浏览器访问http://172.25.68.1/memcache.php 要输入用户和密码,可以看到现在命中率是50%
在这里插入图片描述
在这里插入图片描述
(3)再打开一个页面访问http://172.25.68.1/example.php
在这里插入图片描述(4)多次刷新,返回memcache的页面刷新可以看到命中率接近100%
在这里插入图片描述
在这里插入图片描述
8.安装ab命令,压力测试,模拟5000请求量

[root@server1 html]# yum whatprovides *ab
[root@server1 html]# yum install -y httpd-tools-2.2.15-29.el6_4.x86_64

在这里插入图片描述
在这里插入图片描述
访问index.php 失败500多次

[root@server1 html]# ab -c 10 -n 5000 http://172.25.68.1/index.php

在这里插入图片描述
在这里插入图片描述
访问example.php 没有失败而且时间大大减少

[root@server1 html]# ab -c 10 -n 5000 http://172.25.68.1/example.php

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值