继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

memcache,php装载memcache模块

所谓伊人_在水一方
关注TA
已关注
手记 273
粉丝 23
获赞 169

memcache

定义


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

工作流程


1.先检查客户端访问的数据是否在于memcache,如果有就直接返回2.如果不在memcache,就去查数据库,同时缓存一份到memcache,大大提高读取速度。

应用和特性


1.用来做网页或数据库高速缓存  2.可用来做session共享  3.适用于数据变动小但多(如微博粉丝+1)  4.存储在内存,不能数据持久化

缓存优化规则:28原则


20%:热数据,经常被访问的数据。用作缓存,存于内存80%:基本不变化的数据,存于固态硬盘




php装载memcache模块

检测当前php环境


vim ~/.bash_profile

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

. ~/.bash_profile或者做软链接

[root@server11 bin]# ln -s /usr/local/lnmp/php/bin /usr/local/bin/

编译

tar zxf memcache-2.2.5.tgzcd memcache-2.2.5

phpize    准备预编译环境


wKiom1jYgmOBX7GyAAArMjc4Q0c419.png


./configuremake && make install


保证php的执行路径是源码包的路径

 [root@server11 memcache-2.2.5]# which php/usr/local/lnmp/php/bin/php


cd /usr/local/lnmp/php/etc/

vim php.ini    记住是.

863         extension=memcache.so

/etc/init.d/php-fpm start

检验

[root@server11 etc]# php -m |grep memcache 


wKiom1jYgmSC6jHvAAAlFl15JNw273.png


rpm -qa |grep php    保证没有rpm包干扰


后台安装配置

yum install memcached -y


/etc/init.d/memcached start


监听端口netstat -antlpue

udp        0      0 0.0.0.0:11211               0.0.0.0:*                               498        10940      3706/memcached


访问memcached数据库

yum install telnet -y 


telnet localhost 11211

set name 0 0 6westosSTOREDget nameVALUE name 0 6westosENDdelete nameDELETEDget name END


编写监控页面

cd memcache-2.2.5 

cp memcache.php /usr/local/nginx/html/

vim memcache.php

23 define('ADMIN_PASSWORD','westos');      // Admin Password28 $MEMCACHE_SERVERS[] = ''; // add more as an array29 $MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an arra    y

编写测试页面

vim test.php


<?php$memcache = new Memcache;$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");$version = $memcache->getVersion();echo "Server's version: ".$version."\n";$tmp_object = new stdClass;$tmp_object->str_attr = 'test';$tmp_object->int_attr = 123;$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at theserver");echo "Store data in the cache (data will expire in 10 seconds)\n";$get_result = $memcache->get('key');echo "Data from the cache:\n";var_dump($get_result);?>

启动nginx

nginx


检验

在浏览器访问: 


1.172.25.88.11/memcache.php    监控cache命中率

2.172.25.88.11/test.php


不断刷新,可以在监控页面看到,缓存的命中率(Hits)越来越大


wKiom1jYgmPBo602AAA195ThHTE540.png



wKioL1jYgmPRxvTsAAA3Q4iUeWk720.png



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP