基于LNMP架构添加Memcached支持,并验证其缓存结果

一 Memcached简介

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。它是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统。

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

特征:

  1. 协议简单;

  2. 基于libevent的事件处理;

  3. 内置内存存储方式;

  4. memcached不互相通信的分布式。

Memcached常用选项:

-l <ip_addr>:监听的地址
-m <num>:缓存空间大小,单位为MB, 默认为64
-c <num>:最大并发连接数,默认为1024
-M:缓存空间耗尽时,向请求者返回错误信息,而不是基于LRU算法进行缓存清理
-f <factor>:growth factor, 增长因子
-t <threads>:处理用于请求的线程数

二 基于LNMP架构添加Memcached支持并验证其结果

1. 架构示意图

1.png

2. 实验环境

IP 功用
192.168.237.129 nginx
192.168.237.131 php-fpm+mariadb+memcached

3. 实验步骤

Nginx, PHP-FPM和MariaDB安装在此忽略。

(1) Memcached安装

#安装Memcached
yum -y install memcached
#启动Memcached
memcached -d -m 1024 -u memcached

连接测试

telnet 192.168.237.131 11211

2.png

查看Memcached信息

4.png

(2) 安装PHP的Memcached的扩展

php连接memcached服务的模块有两个,php-pecl-memcache和php-pecl-memcached.若要安装php-pecl-memcached需要依赖libmemcached程序包,可以提供相应操作查看memcached的工具。在这里为方便演示就直接使用php-pecl-memcache扩展模块。

#安装PHP的Memcached扩展模块
yum -y install php-pecl-memcache

测试PHP是否已支持Memcached, 浏览器中输入http://192.168.237.129/index.php

3.png

(3) 测试Memcached缓存

#在nginx根目录下写入php测试脚本
vim /usr/share/nginx/html/test.php
<?php
$mem = new Memcache;
$mem->connect("192.168.237.131", 11211);   #连接Memcached

$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>\n";   #输出Memcached版本信息

$mem->set('testkey', 'Hello World', 0, 600);   #向Memcached存储数据'Hello World',时间为600s
echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";   

$get_result = $mem->get('testkey');   #获取testkey的值
echo "$get_result is from memcached server.";
?>

测试Memcached缓存结果,在浏览器中输入192.168.237.129/test.php

5.png

可以看出缓存已生效,再查看Memcached相应信息

6.png

原创文章,作者:N25_zzc,如若转载,请注明出处:http://www.178linux.com/63428

(0)
N25_zzcN25_zzc
上一篇 2016-12-12 17:25
下一篇 2016-12-12 18:24

相关推荐

  • lvm逻辑卷管理

    lvm逻辑卷管理: 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统,将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 在物理卷上创建的逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统 创建: 创建物理卷: pvcrea…

    Linux干货 2016-09-01
  • Linux发展史

    Linux发展史 Linux的简单介绍 Linux操作系统诞生于1991 年,是一套免费使用和自由传播的类Unix操作系统。Linux存在着许多不同的Linux发行版本。严格意义上的Linux系统应该是GUN/Linux(kernel+Application)而Linux本身只表示Linux系统内核,但实际上人们已经习惯了用Linux称呼GUN/Linux系…

    Linux干货 2016-10-13
  • yum详解

    yum YUM: Yellowdog Update Modifier,rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具 yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下) yum对软件包的管理机制 —–引用了…

    Linux干货 2016-08-25
  • N25第三周作业(用户组,和文本管理)

    列出当前系统 上所有已经登录用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 列出最后登录到当前系统的用户相关信息. 命令who查看所有用户 , tail查看后几行 取出当前系统上被用户当作其默认shell的最多那个shell. 命令cut 分割 , -d 指定分隔符,-f指定字段 uniq 显示或忽略重复行信息   -c:显示并统计重复…

    Linux干货 2016-12-19
  • LVS小记

    19.LVS小记    LVS的类型:        nat:是一种基于IP的DNAT的,通过目标端口与目标地址利用特定的算法选取出响就的主机进行响应,通过RS(Real Server)的地址和端口进行转发            特点:&n…

    2017-05-15
  • 【知识点】NO.1—-关于删除文件后未及时释放磁盘空间问题

    删除了某些占用大存储的文件,发现占用的磁盘空间并没有的到释放。怎么解决呢?
    在工作中经常遇到服务器某个存放日志或者某些数据的磁盘(或者目录),因为检查不及时磁盘存储满了的状况。释放空间真的只是删除文件这么简单吗?nonono…

    2017-11-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 16:30

    搭建过程能详细总结下会更好~~加油~