• Linux 之 Memcached


    Memcached的安装使用


     参考教程:【千峰教育


    环境:CentOS 6.8


    一、简介:

      memcached作为高速运行的分布式缓存服务器,具有以下的特点。
      · 协议简单
      · 基于libevent的事件处理
      · 内置内存存储方式
      · memcached不互相通信的分布式


    二、安装依赖包

    yum install -y libevent-devel

     

    三、安装memcached

      1、下载:

    wget http://memcached.org/files/memcached-1.5.12.tar.gz

      2、解压:

    tar -zxvf memcached-1.5.12.tar.gz

      3、配置、安装

    cd memcached-1.5.12
    ./configure --prefix=/usr/local/memcached --enable-64bit
    make && make install

      4、开启服务:

    cd /usr/local/memcached/bin
    ./memcached -u www -d

      参数说明:

        -p:指定端口,默认为11211
        -m:指定内存,根据自己硬件设置
        -u:指定用户,不能是root
        -d:后台运行


    四、安装libmemcached

      (libmemcached 是一个memcached的客户端库)

      1、下载:

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

      2、解压:

    tar -zxvf libmemcached-1.0.18.tar.gz

      3、配置、安装

    cd libmemcached-1.0.18
    ./configure --prefix=/usr/local/libmemcached --with-memcached
    make && make install

     

    五、安装php-memcached扩展

      (教程上是unzip php-memcached-php7.zip,但是我没找到,使用的下面的扩展)

      1、下载:

    wget https://pecl.php.net/get/memcached-3.1.3.tgz

      2、解压:

    tar -zxvf memcached-3.1.3.tgz

      3、配置、安装

    cd memcached-3.1.3
    phpize
    ./configure --with-php-config=/usr/local/php7/bin/php-config 
    --with-libmemcached-dir=/usr/local/libmemcached/
    
    make && make install

      注意事项:

        第一:phpize ,这个命令在php的安装目录下的bin目录下,即/usr/local/php7/bin/,专门解压php扩展库的。

          如果报错,提示没有这个命令,就把这个命令的位置添加到环境变量里:
          vim /etc/profile
          export PATH=$PATH:/usr/local/php7/bin
          source /etc/profile
        第二:使用phpize报错,提示Autoconf版本低,需要升级,没有生成configure文件,影响下一步编译。

        第三:使用./configure时报错提示没有文件,检查上一步的phpize命令是否报错。

      4、在php的配置文件php.ini中增加Memcached扩展。

        上一步执行成功时,最后会显示扩展路径:

          示例:

            Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/

        复制这个路径,

          vim /usr/local/php7/etc/php.ini

          增加一行:

          extension="usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/memcached.so"

        注意:每个环境的路径不太一样。

      5、重启php:  
        service php-fpm restart


    六、使用memcached

    创建新对象:new Memcached
    添加服务器:addServer
    添加键值对:set
    根据键获取值:get
    删除键值对:delete
    增加指定数值:increment
    减去指定数值:decrement
    清空所有缓存:flush


    七、设置session使用Memcached保存

    vim /usr/local/php7/etc/php.ini
    session.save_handler = memcached
    session.save_path = "127.0.0.1:11211"


    八、代码示例

    $m = new Memcached();
    $m->addServer('127.0.0.1',11211);
    $m->set('name','zhang san');
    $name = $m->get('name');
    echo $name;

    ===============================================
    使用phpize时报错:
    configure.ac:3: error: Autoconf version 2.68 or higher is required
    解决:
    (1)查询当前版本:
    命令:rpm -qf /usr/bin/autoconf
    autoconf-2.63-5.1.el6.noarch
    (2)卸载当前版本:
    命令: rpm -e --nodeps autoconf-2.63
    (3)安装新版本:
    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
    tar -zxvf autoconf-2.69.tar.gz
    cd autoconf-2.69
    mkdir -p /usr/local/autoconf
    ./configure --prefix=/usr/local/autoconf/
    make && make install
    (4)查看版本:
    /usr/local/autoconf/bin/autoconf -V
    =======================================================


  • 相关阅读:
    自用封装javascript函数
    Jquery跨域获得Json
    【M13】以by reference 方式捕捉exceptions
    【M12】了解“抛出一个exception”与“传递一个参数”或“调用一个虚函数”之间的差异
    【48】认识template元编程
    【44】将与参数无关的代码抽离templates
    【23】宁以non-member、non-friend替换member函数
    【22】将成员变量声明为private
    【21】必须返回对象时,别妄想返回器reference
    【转】C++对象内存分配问题
  • 原文地址:https://www.cnblogs.com/gyfluck/p/10523771.html
Copyright © 2020-2023  润新知