Memcached实现PHP和Nginx缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dream_ya/article/details/81607385

一、Memcached介绍


注意:此篇博客接着上篇博客写的,已经编译安装好PHP、Nginx了,编译安装目录/usr/local/lnmp!!!

1、简介

  • Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

  • Memcached是内存中的一个键值存储,用于存储来自数据库调用、API调用或页面呈现结果的任意数据块(字符串、对象)。

  • Memcached是一个高性能的分布式内存对象缓存系统,本质上是通用的,最初的用途是通过减轻数据库负载来加速动态web应用程序。

  • 我们可以通过官网查看Memcached信息。

2、工作原理

Memcached由服务端和客户端两个核心组件组成,在一个memcached的查询中,key根据一个hash算法得到一个hashkey,根据这个值选择服务器存储,然后进行连接,获取value值。因为这之间没有交互以及多播协议,所以 memcached交互带给网络的影响是最小化的。

3、Memcache和Memcached区别

Memcache(Memcached的前生)是PHP得内置模块,完全是在 PHP 框架内开发的,不需要安装任何其他模块,支持 OO(面向对象) 和非 OO 两套接口并存。Memcached是建立在 libmemcached 的基础上的,只支持 OO 接口。libmemcached 是 Memcache 的 C 客户端,它具有低内存,线程安全等优点。在高并发得情况下,更加稳定可靠。

二、编译安装Memcached


注意:安装Memcached可以使用yum安装,这里我们使用编译来进行安装!!!

1、下载Memcached

下载地址:https://github.com/memcached/memcached/wiki/ReleaseNotes
百度网盘下载地址: https://pan.baidu.com/s/1P5CHgedztkIDpf7zi0Orow 密码: tdzn

[root@server1 ~]# wget http://www.memcached.org/files/memcached-1.5.0.tar.gz

2、安装依赖

[root@server1 ~]# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libevent-devel-1.4.13-4.el6.x86_64.rpm
[root@server1 ~]# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libevent-headers-1.4.13-4.el6.noarch.rpm
[root@server1 ~]# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libevent-doc-1.4.13-4.el6.noarch.rpm
[root@server1 ~]# yum install -y libevent-*

3、解压tar包

[root@server1 ~]# tar xf memcached-1.5.0.tar.gz 

4、编译安装

[root@server1 ~]# cd memcached-1.5.0/
[root@server1 memcached-1.5.0]# ./configure --prefix=/usr/local/lnmp/memcached
[root@server1 memcached-1.5.0]# make && make install

5、启动查看

[root@server1 memcached-1.5.0]# /usr/local/lnmp/memcached/bin/memcached -d -m 64M -u root -l 10.10.10.1 -p 11211 -c 256 -P /tmp/memcached.pid

[root@server1 ~]# netstat -lntup|grep 11211
tcp        0      0 10.10.10.1:11211            0.0.0.0:*                   LISTEN      13501/memcached     
udp        0      0 10.10.10.1:11211            0.0.0.0:*                               13501/memcached 

三、PHP扩展Memcache安装


注意:此架构是memcache做PHP的缓存!!!

1、下载Memcache

下载地址:http://pecl.php.net/package/memcache

[root@server1 ~]# wget http://pecl.php.net/get/memcache-2.2.7.tgz

2、解压tar包

[root@server1 ~]# tar xf /root/memcache-2.2.7.tgz 

3、使用phpize添加外挂模块

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,我们可以查看官方文档进行安装!!!

[root@server1 memcache-2.2.7]# /usr/local/lnmp/php/bin/phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

4、编译安装Memcache

[root@server1 memcache-2.2.7]# ./configure --enable-memcache
[root@server1 memcache-2.2.7]# make && make install

这里写图片描述

5、php连接Memcache

[root@server1 memcache-2.2.7]# vim /usr/local/lnmp/php/etc/php.ini

这里写图片描述

6、查看连接是否成功

[root@server1 memcache-2.2.7]# /etc/init.d/php-fpm reload
[root@server1 memcache-2.2.7]# /usr/local/lnmp/php/bin/php -m |grep memcache
memcache

7、配置memcache.php

[root@server1 memcache-2.2.7]# cp /root/memcache-2.2.7/{example.php,memcache.php} /usr/local/lnmp/nginx/html/
[root@server1 memcache-2.2.7]# vim /usr/local/lnmp/nginx/html/memcache.php

这里写图片描述

8、查看结果
http://10.10.10.1/memcache.php

这里写图片描述

这里写图片描述

9、压力测试

[root@server1 ~]# ab -c 10 -n 1000 http://10.10.10.1/example.php

这里写图片描述

四、通过OpenResty编译安装Nginx


注意:此时的架构是memcached+Nginx(OpenResty)+PHP,memcached做Nginx缓存,由于Nginx不自带某些模块,因此需要找到对应的模块来添加,为了方便,我们使用OpenResty来做实验!!!

1、OpenResty介绍

  • OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

  • OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

  • OpenResty的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

  • 我们可以通过官网查看其详细介绍。

2、删除之前的Nginx

[root@server1 ~]# nginx -s stop
[root@server1 ~]# rm -rf /usr/local/lnmp/nginx

3、加压tar包

[root@server1 yy]# ls /yy
nginx-sticky-module-ng.tar.gz  openresty-1.13.6.2.tar.gz

[root@server1 yy]# tar xf nginx-sticky-module-ng.tar.gz 
[root@server1 yy]# tar xf openresty-1.13.6.2.tar.gz 

4、编译安装

[root@server1 yy]# cd openresty-1.13.6.2
[root@server1 openresty-1.13.6.2]# ./configure --prefix=/usr/local/lnmp/openresty --with-http_ssl_module --with-http_stub_status_module --add-module=/yy/nginx-sticky-module-ng
[root@server1 openresty-1.13.6.2]# gmake && gmake install

5、配置nginx.conf

[root@server1 ~]# vim /usr/local/lnmp/openresty/nginx/conf/nginx.conf       

这里写图片描述
这里写图片描述

这里写图片描述

[root@server1 ~]# /usr/local/lnmp/openresty/nginx/sbin/nginx -t
[root@server1 ~]# /usr/local/lnmp/openresty/nginx/sbin/nginx

6、压力测试

通过Requests per second可以发现速度明显提高!!!

[root@server1 ~]# ab -c 10 -n 1000 http://10.10.10.1/example.php

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Dream_ya/article/details/81607385