CentOS 7下Memcached安装和简单使用

前言:memcached的介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从…

前言:memcached的介绍

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

对于强化版的memcached:Redis,在我的前两篇文章有介绍到它的安装和使用:Redis在CentOS 7上的安装部署http://www.linuxidc.com/Linux/2017-05/143312.htm 、CentOS 7下安装php-redis扩展及简单使用 http://www.linuxidc.com/Linux/2017-05/143316.htm,如果大家想了解memcached和redis的异同和在什么情况下我们应该怎么选择缓存系统 http://www.linuxidc.com/Linux/2017-05/143317p2.htm,以下这篇文章相信对大家会有一个很好的启发:缓存技术PK:选择Memcached还是Redis?,感谢这篇文章的作者的精辟分析。

在本篇文章中,我会带领大家在CentOS 7下安装和使用Memcached。

步骤一:memcached的安装

memcached的安装包括:1、服务端的安装;2、客户端的安装

1、服务端的安装:

在这里,由于用编译安装memcached服务端过于复杂,因此我选用依赖管理工具 yum 来实现 memcached 的服务端安装:

[root@localhost /]# yum install -y memcached

-y 表示自动应答,即默认安装所有需要用到的依赖包

在这一步之后,我们就安装完了。

我们尝试去启动一下memcached:

[root@localhost /]# /usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root

-b 守护进程模式(退出终端窗口之后使程序还在运行),-l 指定IP地址127.0.0.1 ,-p 指定端口号11211,-m 为memcached分配多少内存(单位:M),-u 指定使用哪个用户启动memcached

查看memcached是否在运行:

[root@localhost /]# ps -ef | grep memcached
//或
[root@localhost /]# pstree -p | grep memcached

如果能够看到存在memcached进程,那就说明我们的 memcached 服务端已经安装成功了。

2、客户端的安装

客户端的安装又分为两步:1、libmemcached 客户端库的安装;2、为PHP安装 php-memcached 扩展

现在我们先来下载后面安装所需要的两个安装包

[root@localhost /]# cd /usr/local/src   #我的所有源码包习惯放在该目录下
[root@localhost src]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz  #下载libmemcached源码包
[root@localhost src]# wget http://pecl.php.net/get/memcached-2.2.0.tgz  #下载memcached源码包
[root@localhost src]# ls
libmemcached-1.0.18.tar.gz  memcached-2.2.0.tgz

1、libmemcached 客户端库的安装:

首先解压 libmemcached-1.0.18.tar.gz、配置

[root@localhost src]# tar -zxvf libmemcached-1.0.18.tar.gz
[root@localhost src]# cd libmemcached-1.0.18/
[root@localhost libmemcached-1.0.18]# ./configure --prefix=/usr/lib/libmemcached

–prefix 指定安装目录,该目录我们后面会用到

编译、安装:

[root@localhost libmemcached-1.0.18]# make && make install

2、为PHP安装 php-memcached 扩展

首先解压 libmemcached-1.0.18.tar.gz、配置

[root@localhost libmemcached-1.0.18]# cd ..
[root@localhost src]# tar -zxvf memcached-2.2.0.tgz
[root@localhost src]# cd cd memcached-2.2.0

到了这一步,我们要使用安装php时生成的 phpize 来生成 configure 配置文件

[root@localhost memcached-2.2.0]# /usr/local/php/bin/phpize (或 /usr/bin/phpize) 
//具体用哪个要取决于你的phpize文件所在的目录,这时你应该用 whereis phpize 来查看路径,如果php是默认安装的话,直接使用phpize即可

配置

[root@localhost memcached-2.2.0]# ./configure -with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl

-with-php-config 指定 php-config,该文件与 phpize 所在目录相同,
–with-libmemcached-dir 指定 libmemcached 安装目录,就刚才我们 –prefix 那个目录 ,–disable-memcached-sasl 说明我们系统不支持sasl.h

编译、安装

[root@localhost memcached-2.2.0]# make && make install

如果安装成功,会提示:Installing shared extension:/usr/local/php/lib/extensions/no-debug-non-zts-20160524/ 等类信息

接下来,我们编辑php配置文件php.ini,你可以用 whereis php.ini 查看所在位置(我的在 /etc/php.ini ),把 php-memcached 扩展加到配置文件。

在 php.ini 中添加以下内容:

extension=memcached.so

步骤二:重启apache服务器,使配置生效

[root@localhost memcached-2.2.0]# systemctl restart httpd.service

重启完之后,检查是否安装完成php-memcached扩展

[root@localhost memcached-2.2.0]# echo "<?php echo phpinfo() ?>">>/home/www/index.php(这里web目录如果没改的话是在 /var/www/html/)

在浏览器地址栏输入 127.0.0.1,查看php扩展,如果有以下图片所示,则表示安装成功:

这里写图片描述
这里写图片描述

当然,更方便的方法是用 php -m

这里写图片描述

上面都说明了我们已经成功的将 memcached 加入到 php 扩展中了

步骤三:使用 php 简单操作 memcached

其实 memcached 和 redis 、MySQL 是没什么两样,同是数据库,(redis是非关系数据库,mysql是关系数据库),因此使用也是差不多的,同样具有命令行使用和php操作使用,关于memcached的更多命令大家可以自行百度。

<?php

    $m = new Memcached();//实例化Memcached类
    $arr = array(
        array('127.0.0.1',11211);
    );
    $m->addServers($arr);

    $m->set('name','lsgogroup',3600);//设置缓存值,有效时间3600秒,如果有效时间设置为0,则表示该缓存值永久存在的(系统重启前)
    $m->get('name');//读取缓存值
    $m->delete('name');//删除缓存值

?>

作者: admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae. Sed dui lorem, adipiscing in adipiscing et, interdum nec metus. Mauris ultricies, justo eu convallis placerat, felis enim ornare nisi vitae.

为您推荐

联系我们

联系我们

返回顶部