含义及理解:
1 . memcache是一个高性能的分布式的内存对象缓存系统,用于动态web应用以减轻数据库负担。通过在内存里维护一个统一的巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。
memcache是一种内存缓存技术,是一种缓存手段,要看情况使用。对于频繁读取,每次读取重复率高,数据更新频度低的数据,用memcache可以优化系统响应速度。
memcache是这个项目的名称,而memcached是它服务端的主程序文件名。
mamcache的使用场景:
访问频繁的字典数据,大量的hot数据,页面缓存,频繁的查询条件和结果,临时处理的数据
memcache在lnmp架构中的部署
将phpize加入环境变量
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。
vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/binsource ~/.bash_profile
memecache的编译安装
tat zxf memcache-2.2.5.tgz
yum install autoconf -y
phpize
cd /memcache-2.2.5/
phpize
/.configure
make && make install
修改php主配置文件,增加memcache模块
并重新加载php
vim /usr/local/lnmp/php/etc/php.ini
873 extension=memcache.so
/etc/init.d/php-fpm reload
查看是否加载成功
php -m | grep memcache php -m | grep mysql
安装memcached
yum install -y memcached
查看memcached的配置文件
cat /etc/sysconfig/memcached PORT="11211"
USER="memcached"
MAXCONN="1024" ##最大链接数1024
CACHESIZE="64"
OPTIONS="" (如果写为OPTIONS="-l 127.0.0.1" 即为只监听本机的11211端口)
启动memcached
systemctl start memcached
telnet测试
yum install telnet -y
拷贝php页面到nginx默认发布目录
cd /lnmp安装包/memcache-2.25
cp memcache.php example.php /usr/local/lnmp/nginx/html/
修改memcache.php内容
vim memcache.phpdefine('ADMIN_USERNAME','memcache'); ## Admin Username(自定义)
define('ADMIN_PASSWORD','westos'); ## Admin Password(自定义)
$MEMCACHE_SERVERS[] = '172.25.230.5:11211'; // add more as an array
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
只留一个主机,memcache没有转发或负载均衡机制,只能一个一个添加(因为本实验只有一个主机,其实可以添加多个)
测试:
开启ngixn打开浏览器
nginx
nginx -t
nginx -s reload
172.25.11.4/memcache.php
压力测试:
在真机上
ab -c 10 -n 5000 http://172.25.11.4/index.php #10个并发,5000个请求
ab -c 10 -n 5000 http://172.25.11.4/example.php
通过对比发现
前者很慢,因为没有缓存,而且failed比较多后者很快,因为有访问缓存,而且没有failed的