转载:Centos7 从零编译配置Memcached

序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。当然memcached分为服务端和客户端。服务端用来存放缓存,客户端用来操作缓存。客户端有两种常见的实现方式。第一种是用php代码根据服务端的通讯规则自己写一个。第二种是安装php扩展库(php-memcached)。  目录 一、二、三、  一、准备工作 创建目录source和package,分别用来放源码和编译后的文件
# mkdir /source/
# mkdir /package/
  二、memcached(服务端篇)首先先安装memcached依赖库libevent。 2.1 安装libevent[官方网站] http://libevent.org/命令流程:
复制代码
# cd /source/
# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
# tar -zxvf libevent-2.0.22-stable.tar.gz
# cd libevent-2.0.22-stable # ./configure --prefix=/package/libevent # make # make install
复制代码
 2.2 安装memcached[官方网站] http://memcached.org/命令流程:
复制代码
# cd /source/
# wget http://memcached.org/files/memcached-1.4.25.tar.gz # tar -zxvf memcached-1.4.25.tar.gz # cd memcached-1.4.25 # ./configure --prefix=/lnmp/memcached --with-libevent=/package/libevent
# make
# make install
复制代码
 本章总结:通过以上操作就很简单的把memcached服务端编译好了。这时候就可以打开服务端进行工作了。
# /lnmp/memcached/bin/memcached -d -m 2048 -l 127.0.0.1 -p 11211 -u root -c 1024 –P /tmp/memcached.pid
启动参数说明: -d  选项是启动一个守护进程。 -m  分配给Memcache使用的内存数量,单位是MB,默认64MB。 -l  监听的IP地址。(默认:INADDR_ANY,所有地址) -p  设置Memcache的TCP监听的端口,最好是1024以上的端口。 -u  运行Memcache的用户,如果当前为root的话,需要使用此参数指定用户。 -c  选项是最大运行的并发连接数,默认是1024。 -P  设置保存Memcache的pid文件。  三、memcached(客户端篇)  第一种:php代码 这种方法实现客户端最简单,直接下载我写的《SL_Memcached》类库include到自己的项目里调用相关对象就行了。当然,你也可以用其他语言实现。这里就不在讲了。使用方法如下:
复制代码
<?php
include('memcached.class.php');

$memcached = new SL_Memcached();       //实例化对象
$memcached->connect('127.0.0.1:11211');   //连接memcached服务端

$memcached->set('key1', '我是快乐的键值');   //设置键值
$memcached->set('key2', '我就要被删了');    //设置键值
$memcached->delete('key2');          //删除键值

var_dump($memcached->get('key1'));      //获取键值
var_dump($memcached->get('key2'));      //获取键值
?>
复制代码
 输出:string(21) "我是快乐的键值"NULL  四、memcached客户端篇)  第二种:php-memcached这种客户端比较麻烦了,他是生成php的扩展库文件memcached.so。首先先安装memcached依赖库zlib、libmemcached。 4.1 安装zlib[官方网站] http://zlib.net/命令流程:
# cd /source/
# wget http://zlib.net/zlib-1.2.8.tar.gz # tar -zxvf zlib-1.2.8.tar.gz
# ./configure --prefix=/package/zlib
# make
# make install
 4.2 安装libmemcached[官方网站] http://libmemcached.org/命令流程:
复制代码
# cd /source/
# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
# tar -zxvf libmemcached-1.0.18.tar.gz
# cd libmemcached-1.0.18
# ./configure --prefix=/package/libmemcached
# make
# make install
复制代码
 4.3 安装m4[官方网站] http://www.gnu.org/software/m4/m4.html命令流程:
复制代码
# cd /source/
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz
# tar -zxvf m4-1.4.17.tar.gz
# cd m4-1.4.17
# ./configure --prefix=/package/m4
# make
# make install
# export PATH=/package/m4/bin:$PATH
复制代码
 4.3 安装php-memcached[官方网站] http://pecl.php.net/package/memcached命令流程:
复制代码
复制代码
备注:安装成功后会有如下类似提示:Installing shared extensions:     /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/这说明在 /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/ 该目录下会生成memcached.so这个就是memcached.so所在目录。我们先记住这个目录。 开始配置php-memcached 打开php.ini
# vi /lnmp/php/etc/php.ini
在合适的位置添加如下
extension = /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so   ------------------------------------------------------------五、常见错误总汇------------------------------------------------------------5.1 Unable to load dynamic library 'memcached.so' - libmemcached.so.11: cannot open shared object file: No such file or directory in Unknown no line 0说明:没有找到php的附加库memcached.so所需动态库libmemcached.so.11。出现上述错误一般是没有将libmemcached目录设置到环境变量里。我们添加到环境变量LD_LIBRARY_PATH里就搞定了。
# export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PATH
 

相关内容推荐