memcache 分为服务端和客户端。服务端用来存放缓存,客户端用来操作缓存。
因此,可以使用 Nginx 直接访问 Memcache,并用$uri 和$args 等 Nginx 内置变量设定缓存 key规则,这样,当缓存命中时,Nginx 可以跳过通过 fastcgi 和 PHP 通信的过程,直接从 memcache中获取数据并返回。
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

1.下载openresty的压缩包,opwnresty中含有自身的nginx,因此不需要额外安装nginx
[root@server2 ~]# tar zxf openresty-1.11.2.3.tar.gz
[root@server2 ~]# cd openresty-1.11.2.3
[root@server2 openresty-1.11.2.3]# yum install gcc-c++ -y
[root@server2 openresty-1.11.2.3]# yum install pcre-devel -y
[root@server2 openresty-1.11.2.3]# yum install openssl-devel -y
[root@server2 openresty-1.11.2.3]# ./configure
[root@server2 openresty-1.11.2.3]# gmake
[root@server2 openresty-1.11.2.3]# gmake install
[root@server2 openresty-1.11.2.3]# cd /usr//local/openresty/nginx/conf/

2.更改配置文件
[root@server2 conf]# vim nginx.conf
###########################################
 18 http {
 19     upstream memcache {        ##nginx 模块中,uosteam 主要用于完成数据的接收,处理,转发
 20     server 127.0.0.1:11211;        ##设置默认端口号
 21     }
 52         location /memc {
 53                 internal;        ##只接受内部访问,不接收外部 http 请求
 54                 memc_connect_timeout 100ms;
 55                 memc_send_timeout 100ms;
 56                 memc_read_timeout 100ms;
 57                 set $memc_key $query_string;    ##使用 Nginx 内置的$query_string 来作为 key
 58                 set $memc_exptime 300;        ##缓存失效时间
 59                 memc_pass memcache;    
 60                 }    ##将请求的 URL 和后端服务返回的有效结果组成 key-value 存入 memcache服务
 72         location ~ \.php$ {
 73                 set $key $uri$args;
 74                 srcache_fetch GET /memc $key;
            ##注册一个输入拦截器到 location,这个配置将在location 进入时被执行
 75                 srcache_store PUT /memc $key;
            ##注册一个输出拦截器到 location,当 location执行完成并输出时会被执行
 76                 root            html;
 77                 fastcgi_pass    172.0.0.60:9000;
 78                 fastcgi_index   index.php;
 79                 include         fastcgi.conf;
 80         }##为“~ \.php$”配置缓存,表示所有以“.php”结尾的请求都会结果被缓存
    }
##当所请求的 uri 以“.php”结尾时,首先到 memcache 中查询有没有以$uri$args 为 key 的数据,如果有则直接返回;否则,执行 location 的逻辑,如果返回的 http 状态码为 200,则在输出前以$uri$args 为 key,将输入结果存入 memcache

###########################################
[root@server2 conf]# /usr/local/openresty/nginx/sbin/nginx -t
[root@server2 conf]# /usr/local/openresty/nginx/sbin/nginx -s reload

[root@server2 conf]# /etc/init.d/httpd start    
##注意:http与nginx的端口号都为80,因此需要修改http的端口号
[root@server2 html]# /etc/init.d/iptables stop
[root@server2 html]# yum install memcached -y

测试:
1.开启memcached,在物理机中进行压力测试
[root@server2 conf]# /etc/init.d/memcached start
[root@foundation60 Desktop]# ab -c 10 -n 50000 http://172.25.60.3/index.php

2.关闭memcached,在物理机中进行压力测试
[root@server2 conf]# /etc/init.d/memcached stop
[root@foundation60 Desktop]# ab -c 10 -n 50000 http://172.25.60.3/index.php

转载于:https://blog.51cto.com/12961670/1930378

nginc+memcache相关推荐

  1. wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...

    一般来说WDCP安装之后就可以正常使用了,不过对于一些朋友来说还无法满足,现在收集了有关WDCP常用组件,比如memcache.mysqli.PDO_MYSQL.mysql innodb.libmcr ...

  2. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  3. Memcache内存分配策略

    转自:http://tank.blogs.tkiicpp.com/2010/12/14/memcache%e5%86%85%e5%ad%98%e5%88%86%e9%85%8d%e7%ad%96%e7 ...

  4. memcache和memcached安装

    首先要明确  memcache不是memcached 第一步安装libevent #wget  https://github.com/downloads/libevent/libevent/libev ...

  5. 分享memcache和memcached安装过程

    Memcache是什么? Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速动态web应用程序,减轻数据库负载. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工 ...

  6. Linux下Memcache服务器端的安装

    Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...

  7. Linux下的Memcache安装(含libevent的安装)

    Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...

  8. 在apache中使用 memcache 来作 session 存储

    session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211" 使用多个 memcached ...

  9. memcache安装

    转载自 http://zhaochen.blog.51cto.com/2029597/390037 一,memcache简单介绍: memcached是高性能的分布式内存缓存服务器,为了提高性能,me ...

最新文章

  1. navicat远程连接mysql10060
  2. Objective-C学习之解析XML
  3. linux运行星际争霸1
  4. sql跨表查询_跨表更新,看到自己写的SQL像个憨憨
  5. 数据结构(四)之单链表查找中间结点
  6. SpringAOP xml 方式和注解简单实现日志处理
  7. java 中的 Math.round(-1.5) 等于多少?
  8. ArrayList 面试10连问
  9. 平衡二叉查找树的构造与遍历(C++)
  10. 用python绘制彩色_使用Python/Matplotlib基于彩色地图绘制(极轴)色轮
  11. 【Hoxton.SR1版本】Spring Cloud Eureka服务注册中心集群搭建
  12. 泛微oa java .net_第三方系统向泛微OA系统推送消息
  13. abap 创建出口历程_(发展战略)ABAP历史发展
  14. 通信技术基础知识回顾
  15. list对象转map
  16. 开源虚拟化KVM(一)搭建部署与概述
  17. Win10系统耳机插入不起作用_依然外放声音---Windows运维工作笔记053
  18. oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍
  19. arch linux u盘安装,如何把ArchLinux安装到U盘上
  20. 互联网医院系统软件开发|互联网医院管理系统开发的好处

热门文章

  1. ylb:创建数据库、表,对表的增查改删语句
  2. MD5+Base64加密(密码常用加密方式)
  3. Lambda表达式【转】
  4. python3.x 使用正则表达式拆分字符串并换行显示
  5. 数码管字体属于什么字体_photoshop里这方法就能知道图片上文字使用的是什么字体...
  6. leetcode 46 java,leetcode46.java
  7. Kali Linux快速切换root用户
  8. WireShark数据包分析数据封装
  9. python同步异步_python中Tornado的同步与异步I/O的介绍(附示例)
  10. 函数在机器底层是如何实现的_智能货柜专题三:如何实现不同机器“千机千面”?...