Memchched
Memcached 的作用:官方的说法就是免费开放源代码、高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态web应用程序。
也就是通过内存加载的方式来减少数据库的访问负担,从而可以高效的满足客户的需求。
安装Memcache
首先需要下载安装包,去给php加载模块支持memcache,这里需要的安装包是 memcache-4.0.5.2.tgz ,这个不是 memcached 安装程序
解压安装包
解压看到这个目录中并没有configur脚本供我们使用,这里要在 memcache-4.0.5.2目录中使用php的脚本:/usr/local/lnmp/php/bin/phpize ,脚本所在的位置就是按转php的目录,这里注意执行脚本前还需要安装 “autoconf” 这个包,yum就可以直接安装
执行完之后就可以看到configur脚本了,然后执行脚本,这里编译时需要添加的参数只需要指定命令安装的目录即可,安装到php的安装目录的bin目录里
[root@server5 memcache-4.0.5.2]# ./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
编译完执行make && make install,就完成了。
同样php的解压包中也存有很多其他的模块可供使用
例:在 php-7.4.1/ext/ 目录下,有很多的模块,可以来测试添加openssl模块
openssl目录里也是没有configur脚本的,同样我们使用:/usr/local/lnmp/php/bin/phpize
执行出现报错,没有config.m4这个文件,但是在目录里看到有一个config0.m4文件,我们来改名测试能否使用
这样执行就成功了
还是预编译,添加的参数一个是支持openssl就是https功能,还有就是指定命令存放路径,预编译成功后再去make && make install 安装
[root@server5 openssl]# ./configure --with-openssl --with-php-config=/usr/local/lnmp/php/bin/php-config
php配置文件编辑
进入php的安装目录,找到配置文件:php/etc/php.ini
搜索extension配置,这里写入安装模块的路径
模块的路径在我们安装时最后的信息会展示出,列出这个路径可以看到我们安装的memcache 和 openssl 都在里面
将这个路径写入
路径写完后还需要写入指定的扩展模块名,扩展模块名就是刚才路径中的文件名
保存退出,然后查看这两个模块,可以看到都是存在的
重新加载,启动php就可以了
Memcached程序安装、配置
企业7.6版本里,有自带的memcached程序,可以直接使用安装,也可以自行在官网里下载最新版本进行安装
这里我使用的系统带的程序,执行 yum install 安装
配置文件信息命令查看: rpm -ql memcached-1.4.15-10.el7_3.1.x86_64
配置文件这里不需要做修改因为我们需要的是它去监听所有IP’地址
vim /etc/sysconfig/memcached
PORT="11211" #开启的端口
USER="memcached" #启用的用户
MAXCONN="1024" #最大连接数
CACHESIZE="64" #缓存大小
OPTIONS="" #监听的配置
开启服务查看信息
对11211端口进行测试
需要使用telnet命令,如果没有yum可以直接安装
[root@server5 php]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
set name 0 0 6 #执行 set name 写入数据,第一个0表示编号,第二个0表示缓存时间0就是一直存在,第三个6表示字符数
redhat
STORED
get name #获取缓存
VALUE name 0 6
redhat
END
delete name #删除缓存
DELETED
get name #删除后就获取不到信息了
END
quit #退出测试
Connection closed by foreign host.
Memcache服务测试
首先将 memcache-4.0.5.2 这个模块的安装目录里的两个测试php页面复制到nginx里
在memcache.php页面里需要修改一些内容,这个文件里会给定一个登录的用户名和密码,可以自行修改,这里暂时不做修改,就是用默认的
下面需要配置服务器,将需要的服务器都可以添加进去,因为这里测试的只有主机一台,所以留一条就可以
保存退出,重加在nginx,打开浏览器进行访问测试
访问后就可以看到需要用户名密码登录,输入测试页面的信息
登录后就可以看到这个数据页面
重新开启一个页面访问使用 memcache 的 example.php 页面,并且刷新多次访问
再刷新memcache.php页面就可以看到访问是一直在是使用缓存的
使用另一台可以通信的主机进行压力测试,看看访问的速率是否有提升
分别访问 index.php 和 example.php
[root@sever4 ~]# ab -c 10 -n 10000 http://172.25.254.5/index.php
[root@sever4 ~]# ab -c 10 -n 10000 http://172.25.254.5/example.php
测试的对比很明显,index.php的访问时间长并且有近十分之一的失败
而通过memcache访问速度快,并且没有失败