MemCache定义
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,
MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)使用key-value存储
为什么要使用Memcache?
主要用于动态Web应用以减轻数据库的负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度
MemCache和MemCached的区别
1、MemCache是项目的名称
2、MemCached服务器端可以执行文件的名称
1)memcache目录中本来没有configure文件,所以没法编译
####################################################################| phpize是用来扩展phn扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中
|加入memcached或者IhageMagick等扩展模块,可以使用phpize。或者说,phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该
|php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行
phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下##########################################################
|先执行命令:phpize
会生成configure文件
[root@server5~]#tar zxf memcache-4.0.5.2.tgz
[root@server5 memcache-4.0.5.2]#phpize
Configuring for:
PHP Api Version:20190902
Zend Module Api No:20190902
Zend Extension Api No:320190902
Cannot find autoconf.Please check your autoconf installation and the
$PHP AUTOCONF environment variable.Then,rerun this script.
报错因为没装autoconf
[rooteserver5~]#yum install-y autpconf
2)编译安装memcache
./configure--with-php-config=/usr/nocal/Lnmp/php/bin/php-config make&&make install
3)安装openss1模块#可以支持https
[root@server5 ~]#cd/root/php-7.4.1/ext/openssl
[root@server5 opensst]#mv confige.m4 config.m4
[root@server5 openssl]#phpize
[root@server5 openssl]#./configure--with-opensst--with-php-config=/usr/
|1ocal/Lnmp/php/bin/php-config
[root@server5 openssl]#make && make install 4)修改php主配置文件,增加两个模块
[rooteserver5~]#cd/usr/Local/Anmp/php/etc/
[root@server5 etc]#vim php.ini
759 extension_dir="/usr/Local/Lnmp/php/Lib/php/extensions/no-debug-non-
zts-20190902”#这个路径是安装模块后生成的912 extension=openssl.so913extension=memcache.so
5)重新加载php
systemct1 reload php-fpm 6)php-m I grep memcache可以查看是否加载成功
php-m I grep mysql
php-m I grep openssl
7)安装memcached
yum instal1-y memcached
8)查看memcached的配置文件
[rooteserver5 sbin]#cat/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
0PTIONS=""(如果写为0PTIONS=“-1127.0.0.1”即为只监听本机的11211端口) 9)后动memcached
systemctl start memcached.service
10)telnet测试
#没有的话:yum install-y telnet telnet localhost 11211
stats(查看状态)
set name 006(0编号0缓存时间(此处0代表不限制时间)6限制字符数)westosawd
CLIENT_ERROR bad data chunk!
ERROR
westos
STORED
get name
VALUE name06
westos
END
delete name
DELETED
set name 056##设置缓存5s,过5s再获取name,为空
westos
STORED
get name
END
I
quit#退出
11)拷贝php页面到nginx默认发布目录
[rooteserver1 memcache-4.0.5.2]#cp memcache.php example.php/usr/Local/Anmp/
nginx/html/
修改内容
define('ADMIN_USERNAME','memcache');##Admin Username(自定义)
define('ADNIN PASSWORD','westos');##Admin Password(自定义)
$MEMCACHE_SERVERS[ ]='172.25.0.5:11211';//add more as an array
#MEMCACHE SERVERS[ ]='mymemcache-server2:11211';//add more as an array
只留一个主机,memcache没有转发或负载均衡机制,只能一个一个添加(因为本实验只有一个主机,其实可以添加多个
加载测试页面效果如下
测试
请求普通页面发现5000次中有663次失败,同时用时16.541秒
请求使用memercash后的网页用时3.38秒同时5000次中失败次数为0.