LNMP架构添加memcached
为LNMP架构添加memcached支持,并完成对缓存效果的测试报告;memcache由LiveJournal的Brad Fitzpatrick开发,是一个自由、高性能、分布式的分布式内存对象缓存系统,
用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。
MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,
数据可以来自数据库调用、API调用,或者页面渲染的结果。
测试环境为: 服务器为192.168.1.188 centos7.2 用一台服务器测试:
一、创建LNMP架构:
#yum install mariadb-server -y ###安装mariadb
#vim /etc/my.cnf
skip_name_resolve= ON
innodb_file_per_table= ON
#systemctl start mariadb.service
#yum install php-fpm php-mysql php-mbstring php-gd php-xml -y
###安装php-fpm
#systemctl start php-fpm
#yum install nginx -y ###安装nginx
# vim /etc/nginx/nginx.conf ###编辑nginx配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME/usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
#systemctl start nginx
二、下面我们来使用memcached:
#yum install memcached -y ###安装memcached
#systemctl start memcached.service
# ss-tunl ###监听在tcp和udp11211端口
udp UNCONN 0 0 :::11211 :::*
tcp LISTEN 0 128 *:11211 *:*
mencached默认工作于文本协议,使用telnet来连接:
#yum -y install telnet
#telnet 192.168.0.188 11211
Trying192.168.0.188...
Connected to192.168.0.188.
Escape characteris '^]'.
stats ###列出当前MemCache服务器的状态
STAT pid 3540 ###进程id
STAT uptime 25383 ###运行时间
STAT time1503608657 ###当前时间戳
STAT version1.4.15 ###版本号
STAT libevent2.0.21-stable ###libvent版本
STAT pointer_size64 ###当前操作系统的指针大小
STAT rusage_user1.063021 ###进程的累积用户时间
STAT rusage_system0.664388 ###累积系统时间
STATcurr_connections 10 ###服务器当前存储的items数量
STATtotal_connections 11 ###启动以后存储的items总数量
STATconnection_structures 11 ###服务器分配的连接构造数
STAT reserved_fds20
STAT cmd_get 0 ### get命令(获取)总请求数
STAT cmd_set 0 ### set命令(获取)总请求数
STAT cmd_flush 0 ### flush命令请求数
STAT cmd_touch 0 ### touch命令请求次数
STAT get_hits 0 ###总命中次数
STAT get_misses 0 ###未命中次数
STAT delete_misses0 ### delete命令未命中次数
STAT delete_hits 0 ### delete命中次数
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses0
STAT auth_cmds 0 ###认证命令处理次数
STAT auth_errors 0 ###认证失败数
STAT bytes_read 19 ###总读取字节数(请求字节数)
STAT bytes_written14 ###总发送字节数(结果字节数)
STATlimit_maxbytes 67108864 ###分配给memcached的内存大小(字节)
STATaccepting_conns 1 ###服务器是否达到最大连接(0/1
STATlisten_disabled_num 0 ###失效的监听数
STAT threads 4 ###当前线程数
STAT conn_yields 0 ###连接操作主动放弃数
STAThash_power_level 16
STAT hash_bytes524288
STAThash_is_expanding 0
STAT bytes 0 ###当前存储占用的字节数
STAT curr_items 0 ###当前存储的数据总数
STAT total_items 0 ###启动以来存储的数据总数
STATexpired_unfetched 0
STAT evicted_unfetched0
STAT evictions 0
STAT reclaimed 0 ###已过期的数据条目来存储新数据的数目
END
#yum install libmemcached-y ### 提供工具程序的程序包
三、安装PHP的memcached的扩展
php连接memcached服务的模块有两个,php-pecl-memcache和php-pecl-memcached.
若要安装php-pecl-memcached需要依赖libmemcached程序包,可以提供相应操作查看memcached的工具。
在这里为方便演示就直接使用php-pecl-memcache扩展模块。
#yum install php-pecl-memcache -y
测试PHP是否支持Memcached
#vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
四、测试memcached缓存
# vim/usr/share/nginx/html/test.php ###编辑测试页
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211)or die("Could not connect");
$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>\n";
$mem->set('hellokey', 'Hello World', 0, 600) or die("Failed tosave data at the memcached server");
echo "Store data in the cache (data will expire in 600seconds)<br/>\n";
$get_result = $mem->get('hellokey');
echo "$get_result is from memcached server.";
?>
如果有输出“Hello World is from memcached.”等信息,则表明memcache已经能够正常工作。
查看MemCache服务器的状态:
命中24次
{:6_406:}{:6_406:}{:6_406:}
页:
[1]