基于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

相关推荐

  • 推荐-常用RAID级别详解

    一、RAID是什么       RAID(Redundant Arrays of Indent Disks)的名称是独立磁盘冗余阵列,是一种通过将多块硬盘按照某种特定的结构组织起来当做一块硬盘来使用的技术,多块硬盘不同的组织结构我们称之为RAID的级别。而RAID技术的特性主要表现在两个方面: (1)提高硬盘…

    Linux干货 2016-03-27
  • rsyslog+mysql+loganalyzer 搭建日志服务器及监控

    rsyslog 日志:历史事件; 历史事件:时间、地点、事件; syslog: klogd:kernel yslogd:system(application) 事件记录格式:日期时间 主机 进程[pid]:事件内容; C/S架构;通tcp或udp协议的服务完成日志记录的传送; rsyslog: rsyslog的特性: – 多线程; –…

    Linux干货 2017-01-10
  • Linux进程和计划任务

                                                      &nbsp…

    系统运维 2016-09-21
  • 导读谷歌三大核心技术之一 GoogleFileSystem(一)

    GoogleFileSystem设计构想 为满足Google数据处理的需求,Google工程师设计并实现了GoogleFileSystem(GFS)。GFS与传统分布式文件系统类似,也需要满足高性能、可伸缩性、可靠性以及可用性。与传统分布式文件系统思路不不同的是: GFS认为组件失效是常态而非意外,GFS由大量廉价设备组成 文件数量异常巨大 绝大部分文件修改…

    Linux干货 2017-05-07
  • linux的终端类型

    1、什么是终端 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。 在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成。 在个人计算机时代,个人计算机可以运行称为终端仿真…

    Linux干货 2016-10-19
  • LINUX-初学正则表达式

    正则表达式    简介       REGEXP:由一类特殊字符及文本字符由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)                    不表示字符字面意义,而表示控制或通配…

    2017-06-04

评论列表(1条)

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

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