1.MemCache的概念
- MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统
- MemCache是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)使用key-value存储
- memcache是一种内存缓存技术,是一种缓存手段,要看情况来使用
- 对于频繁读取,每次读取重复率高,数据更新频度低的数据,用memcache可以优化你的系统响应速度
- Memcache和memcached的区别:
- Memcache是这个项目的名称,而memcached是它服务器端可以执行文件的名称
2.使用MemCache的原因
- 主要用于动态web应用以减轻数据库的负载
- 它通过在内存中缓存数据和对象来减少读取数据库的次数
- 从而提高了网站访问的速度
3.实现MemCache对php页面的缓存加速优化的具体操作
php增加mamcache模块
-
vim .bash_profile
#编辑文件,添加mysql和php的路径,方便调用
-
tar zxf memcache-4.0.5.2.tgz
#解压 -
cd memcache-4.0.5.2/
#切换到解压目录下 -
由于memcache目录中没有configure文件,因此无法编译
-
source /root/.bash_profile
#刷新添加路径php的文件 -
phpize
#侦测之前的php环境以至于使memcache可以进行编译,即就是使用configure
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,
比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。
phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,
所以是要根据该php的配置情况生成对应的configure文件,建立一个configure文件。
必须在一个目录下去运行phpize,那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。
-
出现错误,安装所需软件
-
yum install autoconf -y
#安装软件 -
phpize
#再次执行
-
安装编译memcache
-
./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
-
make && make install
-
安装完成后会生成一个目录
/usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20190902/
,将目录保存
-
cd /usr/local/lnmp/php/etc/
#切换到此路径下 -
vim php.ini
#编辑文件 -
将安装完memcache保存的目录添加到759行,在913行加入memcache模块
-
/etc/init.d/php-fpm reload
#重新加载php -
php -m | grep memcache
#过滤memcache模块,发现已经有了这个模块 -
php -m | grep mysql
#同时支持mysql
-
yum install memcached -y
#安装memcache工具 -
cat /etc/sysconfig/memcached
#查看配置文件 -
systemctl start memcached
#启动memcache -
systemctl status memcached
#查看状态
-
用telnet连接,查看memcache怎样工作
-
yum install telnet -y
#安装telnet命令 -
telnet localhost 11211
#连接memcache
cd /root/lnmp/memcache-4.0.5.2/
#切换到解压后的目录中cp memcache.php example.php /usr/local/lnmp/nginx/html
#复制提供的两个测试页面到nginx的默认发布页面cd /usr/local/lnmp/nginx/html/
memcache.php
为监控页面,可以看到memcache是否正确的被调度vim memcache.php
#编辑此文件- 编辑内容如下:
- 在浏览器上访问172.25.254.1/memcache.php #该页面显示了访问命中率
example.php
提供页面,这个页面会告诉php,获取了一个结果后要在memcache中以key-value的形式存储一次
测试- 在ip为172.25.254.76的机器上测试
ab -c 10 -n 5000 http://172.25.254.1/index.php
#以10个并发,并发5000次,没有加速的index.php页面
ab -c 10 -n 5000 http://172.25.254.1/example.php
#以10个并发,并发5000次,加速的example.php页面