一、Memcache简介
内存缓存技术:memcache是实现php语言 对内存 进行操作的中间介质
MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作; 如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到 memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配 给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据
做 memcache加速
首先在官网下载memcache包,并下载客户端
tar zxf memcache-2.2.5.tgz
yum install -y memcached
vim /etc/sysconfig/memcached
看见他站64M内存
/etc/init.d/memcached start
netstat -antlp ##可以看见memcached的端口为11211
yum install -y telnet
telnet localhost 11211
set name 0 0 6 ##设置一个名字为6个字符,0代表永久不刷新
wb ##设置的两个字符
get name ##得到名字
set user 1 10 2##设置一个2个字符的用户,1代表过期,0代表不过期,10代表过期时间
get user##过期时间到了,什么都不会出现
cd /usr/local/lnmp/php
cd bin ##php的路径
cd
####给php添加环境变量
vim .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin
export PATH
source .bash_profile
php -m | grep mysql ##会出现东西
php -m | grep memcache ##此时不会出现东西
cd memcache-2.2.5
ls
##phpize支持热加载,就是还能添加模块,.创建一个预编译环境并进行编译汇编memcache源码包
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使phpize。
或者说,phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据 该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道 你的的环境是哪个目录,并且configure文件建立在该目录下
phpize
ls
./configure
make
make install ###此时会显示一个路径
5.编译完成后,提示我们进入php/extensions/no-debug-non-zts-20131226/目录,在这个目录中的我们可以查看 php中已经添加的模块,发现还没有我们的memcache模块,因此我们去到php的配置文件中添加memcache模块。
cd 显示的路径里面
ls ##有一个memcache.so这个文件
cd /usr/local/lnmp/php/etc/
ls
vim php.ini
将Dynamic Extensions下的; ... or under UNIX:下面的
extension=memcache.so改成这样
/etc/init.d/php-fpm reload
php -m | grep memcache ##这时会有东西显示出来
cd
cd memcache-2.2.5
ls
cp example.php memcache.php /usr/local/lnmp/nginx/html
cd /usr/local/lnmp/nginx/html
ls##有传过来的两个东西
vim memcache.php
改自己想设的密码,也可不改,注释一个$MECACHE_SERVER,只留一个,并改ip为127.0.0.1:11211,其他的不改
测试:
http://172.25.254.1/memcache.php
用户名为memcache 密码为自己改的密码
进入界面之后,发现命中和没有命中分别为50%
另外开一个界面 http://172.25.254.1/example.php ##不断的刷新然后进memcache.php页面,刷新,可以看见命中的机会越来越大
在
真机检验:
施压
ab -c 10 -n 1000 http://172.25.254.1/index.php ##看每秒做的次数
ab -c 10 -n 1000 http://172.25.254.1/example.php ##可以看加他比上面的快 因为有memcache加速块 1000代表有1000个任务 -c 代表病发量 -n 代表任务数