LNMP架构优化 —— LNMP + memcached 对php页面的缓存优化

1. LNMP+memcached

1.1 实验环境

node1:192.168.1.11

LNMP环境:还没有配置好LNMP环境,参考https://blog.csdn.net/m0_37868230/article/details/105965040配置环境

1.2 memcached

1.2.1 memcached定义

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

web应用都将数据保存在数据库中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,会导致数据库负担加重、数据库响应恶化、网站显示延迟等重大影响。这个时候就需要memcached通过缓存数据库查询结果、减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

1.2.2 memcached工作流程

因此每次更新mysql中数据,也会同时更新memcached中的数据,来保证一致性。且当memcached内存空间用完,会使用LRU策略和到期失效策略,替换数据。首先将失效数据替换,接下来是最近未使用数据。

1.2.3 memcached安装

yum install -y memcached.x86_64

rpm -qa | grep memcached                    # 查询安装的信息
rpm -ql memcached-1.4.15-10.el7_3.1.x86_64  # 查询并列出安装的包的内容

1.2.4 安装php的memcache扩展

  • 获取安装包

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

  • 解压安装包
tar zxf memcache-4.0.5.2.tgz

可以看到,当前目录下,没有编译的文件,因此这里我们需要使用phpize来生成编译文件

  • 通过phpize生成编译文件【注意,这里是因为memcache是php的一个模块,才可以使用phpize来生成
ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/  # 做软链接,可以直接使用bin目录下的命令
source /etc/profile                              # 重新加载环境变量
phpize                                           # 生成编译文件

yum install -y autoconf       # 安装autoconf

此时,我们再次去生成编译文件,就没有问题了,我们想要的configure文件就已经生成了。结果如下:

  • 编译
./configure --with-php-config=/usr/local/lnmp/php/bin/php-config    # 指定php配置文件的路径

  • make && make install

  • 修改php配置文件,引入扩展
vim /usr/local/lnmp/php/etc/php.ini
/etc/init.d/php-fpm reload            # 重启php

php -m | grep memcache                # 查看是否有memcache模块

查询可以看到,模块引入成功~

1.2.5 测试

  • 复制memache的php页面
cp example.php memcache.php /usr/local/lnmp/nginx/html/   # 复制php文件到html下
vim /usr/local/lnmp/nginx/html/memcache.php               # 编辑memcache.php

  • 启动memcached服务

  • 浏览器访问 

  • 测试速率优化 
yum install -y httpd-tools-2.4.6-88.el7.x86_64   # 安装ab工具所在的包

ab -c 10 -n 3000 http://192.168.1.11/index.php
# 10个并发3000次请求访问http://192.168.1.11/index.php[没有经过memcache缓存,看一下缓存速率有多快]

ab -c 10 -n 3000 http://192.168.1.11/example.php
# 10个并发3000次请求访问http://192.168.1.11/example.php[经过memcache缓存,看一下缓存速率有多快]

可以看到,memcached缓存的没有失败的请求,且处理速率高[处理请求多,因此直观看上去貌似是前者快,但实际处理请求越多时差距越明显]~

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值