为PHP添加memcache扩展模块

Memcache

memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。

Memcache工作流程

先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到 memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
在这里插入图片描述
断电或者重启服务器内存数据即消失,即临时数据;
Memcache默认端口:11211
存入方式:key=>>value lengh(长度) time(过期时间)
注意:不只是字符串,视频,声音,图片,文字等等都可以存;
对比:
Apache –消耗Cpu,用的内存很少
Memcache-消耗内存比较多,CPU消耗较少

Memcache的安装

如果安装了memcached不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题,如果安装了memcache扩展但是没有安装memcached服务,那么这个就无法使用 ,只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能

将Memcache添加至PHP

安装Memcache

1:下载并解压memcache源码包
在这里插入图片描述
2:将前边php编译完成的二进制命令加入环境变量中,保证可以直接调用php命令
vim ~/.bash_profile
第十行写入:
PATH= P A T H : PATH: PATH:HOME/bin:/usr/local/mysql/bin:/usr/local/nginx/sbin:/usr/local/php/bin
在这里插入图片描述
source ~/.bash_profile
在这里插入图片描述
3:cd memcache-2.2.5
phpize
创建一个预编译环境并进行编译汇编memcache源码包
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。或者说,phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。
在这里插入图片描述
4:./configure ##因为之前已经编译安装好了php,我们就不用再指定新的php扩展模块路径,直接执行./configure
5:make && make install
在这里插入图片描述
6:编译完成后,提示我们进入php/extensions/no-debug-non-zts-20131226/目录,在这个目录中的我们可以查看php中已经添加的模块,发现还没有我们的memcache模块,因此我们去到php的配置文件中添加memcache模块。
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
php -m | grep memcache
在这里插入图片描述
可以看到,此目录中现在还没有memcache模块
7:添加模块
vim /usr/local/php/etc/php.ini
编辑873行:
extension=memcache.so
在这里插入图片描述
8:/etc/init.d/php-fpm reload ##重新加载php
9:再次进入/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/,过滤memcache
在这里插入图片描述
10:安装服务端memcached
yum install memcached -y
在这里插入图片描述
11:/etc/init.d/memcached start
12:查看memcached端口11211
netstat -antlp | grep memcached
在这里插入图片描述
13:cd memcache-2.2.5
14:cp memcache.php example.php /usr/local/nginx/html/
15:cd /usr/local/nginx/html/
16:设置memcached的密码
vim memcache.php
在这里插入图片描述
17:将第23行的password改为自己想设置的密码
第28行的mymemcache-server1改为localhost
然后注释掉29行
在这里插入图片描述
18:在浏览器中分别访问172.25.66.1/example.php与172.25.66.1/memcache.php
(1):172.25.66.1/example.php
在这里插入图片描述
(2):172.25.66.1/memcache.php
在这里插入图片描述
在这里插入图片描述
19:访问测试,查看安装了memcache模块后,在浏览器处访问安装了memcache和未安装memcache的网页,查看性能的变化
ab -c 10 -n 1000 http://172.25.66.1/example.php
在这里插入图片描述
在下面可以看到处理情况
在这里插入图片描述
可以看到每秒处理请求501次,一共处理1000个,失败了120次
接下来我们再用同样的方法测试访问example.php
在这里插入图片描述
我们再看看处理情况
在这里插入图片描述
可以看到同样是处理1000次请求,可以看到,每秒处理高达1874次,而且失败0次,效率明显高于访问未安装memcache的网页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值