zoukankan      html  css  js  c++  java
  • 转载:Centos7 从零编译配置Memcached

    序言


    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

    Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

    当然memcached分为服务端和客户端。服务端用来存放缓存,客户端用来操作缓存。

    客户端有两种常见的实现方式。

    第一种是用php代码根据服务端的通讯规则自己写一个。

    第二种是安装php扩展库(php-memcached)。

    目录


    一、Centos7 从零编译Nginx+PHP+MySql

    二、Centos7 从零配置Nginx+PHP+MySql

    三、Centos7 从零编译配置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

    命令流程:

    复制代码
    # cd /source/
    # wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
    # unzip php7.zip
    # cd php-memcached-php7
    # /lnmp/php/bin/phpize
    # ./configure
    # --with-php-config=/lnmp/php/bin/php-config
    # --with-zlib-dir=/package/zlib
    # --with-libmemcached-dir=/package/libmemcached
    # --disable-memcached-sasl

    # make
    # make install
    复制代码

    备注:

    安装成功后会有如下类似提示:

    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
  • 相关阅读:
    字符串的比较方法---Java
    [模板]二进制枚举
    [唯一分解定理]感谢ZLY讲解
    [数学] 小数点后第n位
    [模板]二维前缀和
    [模板]欧拉函数及其应用
    [51nod] 1024 矩阵中不重复的元素
    Codeforces Round #521 (Div. 3) D. Cutting Out
    [差分] [POJ] 3276 Face The Right Way
    Educational Codeforces Round 54 (Rated for Div. 2) C. Meme Problem
  • 原文地址:https://www.cnblogs.com/roam/p/5924917.html
Copyright © 2011-2022 走看看