lnmp的数据库缓存---->memcache

来源:互联网 发布:社会支持网络理论ppt 编辑:程序博客网 时间:2024/05/17 07:02

最近做了lnmp架构的搭建,在完成后,我们先对这个架构进行分析,当请求到达,nginx接受,如果是静态nginx直接返回数据,如果是动态nginx会将请求向后转发给php/tomcat,php去mysql中查找从而返回

在优化的过程中,我们最重要的是对I/O进行处理。 cpu从内存拿数据比从磁盘拿数据要快很多,所以我们来看整个lnmp可供我们加缓存以优化。

关于i/o
当客户端请求静态数据,nginx自己处理,这里会有磁盘I/O;
当客户端请求动态数据,nginx通过fastcgi把请求转交给后面的应用程序服务器,当这些应用程序拿数据就需要去后面的MySQL去拿,这里就又有一个磁盘I/O。

一、缓存系统
1.memcache
memcache是一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著[1] 。这是一套开源软件,以BSD license授权发布。
二:配置
操作前提:已安装配置好php,
1.下载memcache安装包,并且将memcache解压

# wget http://pecl.php.NET/get/memcache-2.2.3.tgz# tar -zxf memcache-2.2.3.tgz

2.将php安装路径下的bin的绝对路径添加到环境变量当中

# vim ~/.bash_profilePATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin# source ~/.bash_profile

3.在memcache的解压目录下执行phpize

# cd memcache-2.2.3/# phpize                                #phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

4.安装php-devel,如果已经安装过了就不用了

# yum install -y php-devel

5.编译安装memcached

# ./configure# make install# install

6.在配置文件中添加memcached模块

# vim php.ini在第851行后面任意一行添加 extension=memcache.so# /etc/init.d/php-fpm reload                      #重启php-fpm# php -m | grep memcache                      #这回可以显示出来memcache,代表php已经成功安装上了动态模块memcache

7.安装memcached,开启memcached服务

# yum install memcached -y# /etc/init.d/memcached start

memcached是监听在11211端口上的

/etc/sysconfig/memcached文件:
文件中内容如下

PORT=”11211#监听端口USER=”root”             #使用的身份MAXCONN=”1024#同时最大连接数CACHESIZE=”64#使用的内存大小OPTIONS=”"             #附加参数,例如:OPTIONS=”-l 127.0.0.1″,只能本机访问,不对公网开放实验:从网页上测试并查看memcache的命中率将解压目录下的example.php,memcache.php放到nginx的发布目录里面example.php:用来连接memcache并发起请求memcache.php:能显示memcache的命中率

memcache.php需要修改为下图所示
这里写图片描述
访问memcache.php,通过访问example.php来对memcache发起连接
这里要添的就是上图的用户memcache和密码westos

这里写图片描述

1.客户端发来请求
2.如果是静态的nginx自己就处理了,如果是动态的,nginx会将请求向后转发给php/tomcat,
3.此时php/tomcat会先去memcache中找,如果找到就直接返回
4.如果找不到,就会去数据库中查找,
5.如果查找到之后,就给memcache保存一份,
6.然后返回给php/tomcat
7.php/tomcat整合好资源之后就返回给nginx
8.nginx响应给客户端

原创粉丝点击