LINUX【企业】 ------- LNMP架构下的Memcache高速缓存部署
LINUX【企业】 ------- LNMP架构下的Memcache高速缓存部署
Memcache简介
- memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著
- Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
- Memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。
- MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的 数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户 端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用 LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
系统环境:RedHat6.5系统
实验环境:
server1: 172.25.60.1/24
物理主机:172.25.60.250/24
部署过程如下:
1.下载解压安装包
[[email protected] lnmp]# tar zxf memcache-2.2.5.tgz
2.进入memcache目录中会发现没有configure,添加configure
编辑~/.bash_profile文件,将PHP的二进制文件路径添加到环境变量中
使脚本生效
[[email protected] memcache-2.2.5]# vim ~/.bash_profile
[[email protected] memcache-2.2.5]# source ~/.bash_profile
执行pipsize命令,生成configure
3.编译安装memcache客户端
./configure
make && make install
4.编辑php的启动文件/usr/local/lnmp/php/etc/ php.ini,加载memcache模块
5.重启php-fpm,并查看php模块
etc/init.d/php-fpm reload
php -m 查看php模块
php -m |grep memcache
6.安装memcache服务
yum install -y memcached
7.将memcache的测试文件放到/usr/local/lnmp/nginx/html目录下
cp memcache.php example.php /usr/local/lnmp/nginx/html
编辑memcache的配置文件memcache.php
23 define('ADMIN_PASSWORD','redhat'); // Admin Password
24 define('DATE_FORMAT','Y/m/d H:i:s');
25 define('GRAPH_SIZE',200);
26 define('MAX_ITEM_DUMP',50);
27
28 $MEMCACHE_SERVERS[] = '172.25.60.1:11211'; // add more as an array
29 #$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
测试:index.php直接访问后端主机,example.php从缓存中访问
ab -c 10 -n 5000 http://172.25.60.1/index.php
ab -c 10 -n 5000 http://172.25.60.1/example.php
注意:-c 10个并发,-n 5000次请求
注意:在浏览器中访问172.25.60.1会自动访问memcache.php页面,刷新example.php页面时,memcache.php页面会发生改变