一、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
[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