memcache+php实现页面访问的加速
一、什么是memcache
memcache是目前主流的一个高性能的分布式内存对象缓存系统;它以key-value形式在内存中存储数据。由于数据缓存在内存中,所以相比操作DB而言,它不需要解析SQL、磁盘I/O等开销,效率更高。通常用来减轻数据库负载,提升系统性能,或作为服务器之间数据共享的存储媒介,比如存储分布式session。
工作过程:先查看客户端的请求数据是否在memcache中,若存在的话,直接把请求结果返回给客户端;若不在缓存中,则从后端数据库中获取响应数据包,同时把获取的响应数据包在memcache中保存一份(便于下一次直接再缓存中获取)。当分给memcache的内存用完之后,会使用LRU(Least Recently Used,最近最少使用策略)加上到期失效策略,失效策略先被替换,然后再替换掉最近未使用的数据。
二、memcache与memcached的区别
memcache是通过客户端的请求来访问,是这个项目的名称;而memcached是服务器端的主程序文件名。
三、memcache的安装
由于之前在server6中进行了php源码的安装,就继续在server6中实验。
1)解压memcache软件包
---> tar zxf memcache-2.2.5.tgz
2) 为了方便直接使用php的二进制命令,我们把之前编译好的php的二进制命令的绝对路径添加在环境变量中。
---> vim ~/.bash_profile
---> source ~/.bash_profile # 使添加的环境变量生效
3)创建预编译环境并进行编译汇编memcache源码包。phpize用来扩展php模块的,可以在原来编译好的php中添加新的模块和功能。phpize的作用也可以检测环境(由于phpize是在php安装目录下的,所以使用phpize会根据php配置的情况产生与其相匹配的configure文件),建立一个configure文件。需要在一个目录下运行phpize,且生成的configure文件就在该目录。
---> phpize
---> ./configure # 预编译
---> make && make install # 汇编安装
4)编译完成后,会提示进入/usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/目录。我们可以在该目录中查看我们添加的memcache模块。
---> cd /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/
---> ls
---> php -m | grep memcache # 此时没有添加进去
---> vim /usr/local/lnmp/php/etc/php.ini # 编辑php配置文件,把memcache模块的加载打开
---> /etc/init.d/php-fpm reload
---> php -m | grep memcache # 此时再次查看memcache模块是否添加进去
5)安装memcached服务,并启动。(memcache服务的端口等信息在/etc/sysconfig/memcached文件中)
---> yum install -y memcached
---> /etc/init.d/memcached start
---> rpm -qc memcached # 查看memcache的配置文件所在目录
---> netstat -antlp | grep 11211 # 从配置文件中可以查看出,memcached服务所在端口为11211
6)对memcache配置文件进行修改
---> cd /root/memcache-2.2.5
---> cp example.php memcache.php /usr/local/lnmp/nginx/html/ # 对example.php文件进行查看即可
7)在浏览器中查看。
# 查看example.php的结果为:
# 查看memcache.php的时候需要登陆。(此时的用户名和密码为上面自己修改的)
# 输入正确的用户名和密码之后的结果是:(php和memcache服务的信息)
# 显示的是缓存命中情况
8)访问测试: 在真机中访问页面,使用浏览器中查看安装了memcache和没安装memcache的网页的性能的变化
# 在真机中使用命令: ab -c 10 -n 1000 http://172.25.2.6/memcache.php
# ab -c 10 -n 1000 http://172.25.2.6/example.php # 在截图中我们可以看出,每个请求响应时间少。
memcache+php实现页面访问的加速的更多相关文章
- 友盟(Swift)-集成、统计用户数量、具体页面访问数量、具体按钮点击数量
什么是友盟.有什么用? 这些傻瓜问题这里就不解释了,可以自己百度去. 友盟提供的文档和demo都是oc的,这里用swift写了一个小demo,在此分享一下. 步骤1:友盟后台注册应用(iOS),拿到a ...
- angularjs中的页面访问权限设置
11月在赶一个项目,这阵子比较忙,挤挤时间更一篇博客吧,如标题所述说说在ng中页面访问权限控制的问题,水平有限各位看官见谅: 在以往的项目中,前后端常见的配合方式是前端提供页面和ui加一点DuangD ...
- Asp.net 页面访问模板页的属性
首先 页面需要添加下面一段代码 <%@ MasterType VirtualPath="~/User/User.Master" %> 添加的位置如图 这样就可以在这个页 ...
- Session的使用(登录例案+其它页面访问)
本程序功能是使用Session将用户输入的用户名保存在Session中(登录成功情况下,登录失败不会有Session值),其它页面想访问时会先判断是否有之前存的Session值. 登录Login.ht ...
- 自建目录中jsp页面访问servlet路径出错404
---恢复内容开始--- 自建目录中jsp页面访问servlet路径出错404 使用eclipse建立的项目,总是会遇到路径问题,比如jsp页面访问servlet,jsp在默认的路径.jsp在自建目录 ...
- 利用curl并发来提高页面访问速度
在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是单个.顺序访问,假如有3个接口,每个接口耗时500毫 秒那么我们三个接口就要花费1500毫秒了,这个问题太头 ...
- Apache配置站点根目录、用户目录及页面访问属性
一.配置站点根目录及页面访问属性 DocumentRoot "/www/htdoc" <Directory "/www/htdoc"> Option ...
- 通过cookie记录,设置页面访问的跳转页
通过cookie记录,设置页面访问的跳转页 转载自:http://blog.csdn.net/yixiao_naihe/article/details/26679515. 目的: 1.访问fm.htm ...
- Tomcat 8默认工具manager管理页面访问配置
Tomcat 8默认工具manager管理页面访问配置 1. 分配相关的角色权限 需要配置的配置文件是${catalina.home}/conf/tomcat-users.xml先给Tomcat访问相 ...
随机推荐
- 【spring mvc】扒一扒tomcat
1.TOMCAT的目录 主要说一下webapps目录,WEB应用的目录结构:假设在$CATALINA_HOME/webapps下有helloapp的web应用 /helloapp:Web应用的根目录, ...
- ng-深度学习-课程笔记-14: 人脸识别和风格迁移(Week4)
1 什么是人脸识别( what is face recognition ) 在相关文献中经常会提到人脸验证(verification)和人脸识别(recognition). verification就 ...
- Http请求中Content-Type
1. Content-Type MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求 ...
- C++多线程学习资料参考
新的C++11语法:<Professional C++>,或<C ++ Primer Plus>: C++11多线程:<C++ Concurrency in Actio ...
- 微信 audio 获取 duration 为 NaN 的解决方法
先加load() myaudio.load(); myaudio.oncanplay = function () { alert(myaudio.duration); } load() 方法用于在更改 ...
- c++第十八天
p105~p108: 1.迭代器与数组的不同:迭代器的索引值必须是无符号类型,数组的索引无此要求. 2.使用数组的时候编译器一般会把它转化为指针. 3.auto ia2(数组名);的结果是:获得一个指 ...
- PHP curl模拟浏览器采集阿里巴巴的实现代码
<?php set_time_limit(0); function _rand() { $length=26; $chars = "0123456789abcdefghijklmnop ...
- 20145302张薇《网络对抗技术》PC平台逆向破解
20145302张薇<网络对抗技术>PC平台逆向破解 实验任务 1.简单shellcode注入实验 2.Return-to-libc 攻击实验 实验相关原理 Bof攻击防御技术 从防止注入 ...
- jQuery实现鼠标点击Div区域外隐藏Div
冒泡定义:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层.(摘自网络 ...
- POJ 3281 Dining(最大流)
http://poj.org/problem?id=3281 题意: 有n头牛,F种食物和D种饮料,每头牛都有自己喜欢的食物和饮料,每种食物和饮料只能给一头牛,每头牛需要1食物和1饮料.问最多能满足几 ...