LNMP下配置Memcached

写在前面
  • Memcached不同于Memcache,二者有区别,前者性能优于后者,同时在配置PHP时候也不同
  • 相对于RedisMongodbMemcached缓存技术并不过时,各有优劣
  • 注意实在Nginx下,非ApacheMemcached在两者中配置也不同
  • 配置均为源码编译安装,并非yum
  • 服务器环境:Nginx1.8.0PHP5.4

详细过程
  • 首先确保服务器下安装了ftp服务,推荐vsftpd
  • ftp客户端新建文件夹soft,分别下载:memcached-1.4.34.tar.gzlibevent-2.0.22-stable.tar.gz,可去官网下载最新的二者的包,放在soft文件下,同时上传至服务器 [root@VM_107_98_centos /]#目录下
  • 安装libevent
    进入压缩包所在目录
    # cd /soft/
    解压
    # tar xzfv libevent-2.0.22-stable.tar.gz
    进入目录
    # cd libevent-2.0.22-stable
    编译安装
    # ./configure
    # make
    # make install
  • 安装memcached
    进入压缩包所在目录
    # cd /soft/
    解压
    # tar xzfv memcached-1.4.34.tar.gz
    进入目录
    # cd memcached-1.4.34
    编译,安装
    # ./configure
    # make
    # make install
  • 启动memcached服务
    # /usr/local/bin/memcached -d -m 64 -u root -p 11211 -P /tmp/memcached.pid
    此时必然报错如下:
    error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
    加载路径出错了,用下面的命令查看下它是从哪里加载的(注意此步骤需要在memcached-1.4.34目录下执行)
    # LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less
    截取部分输出
    6394: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
    6394: trying file=/lib64/tls/libevent-2.0.so.5
    6394: trying file=/lib64/x86_64/libevent-2.0.so.5
    6394: trying file=/lib64/libevent-2.0.so.5
    配置指向路径(此步骤很重要,注意跟上面最后一个是对应的)
    # ln -s /usr/local/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5
    再次执行启动Memcached服务,可以启动成功
    # /usr/local/bin/memcached -d -m 64 -u root -p 11211 -P
    测试通信是否正常
    # telnet 127.0.0.1 11211
    输出如下
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    说明启动成功,Ctrl + ]然后quit退出 telnet
  • 安装完成memcached后会自动在/usr/local/php5.4/lib/php/extensions/no-debug-non-zts-20100525目录下生成memcached.so,检查下php.iniphp的拓展路径是否配置,是否配置正确,正确的如下
    extension_dir = "/usr/local/php5.4/lib/php/extensions/no-debug-non-zts-20100525/"
    extension = "imagick.so"
    extension = "memcached.so"
  • 重启php-fpmNginx服务器需要重启php-fpm
  • 查看是否配置成功Memcached模块,成功如下

LNMP下配置Memcached_第1张图片
memcached.png

PHP进行测试
  • 简单测试源码

    addServer('127.0.0.1','11211');
     // 传入多台服务器
     // $servers = array(
     //     array('127.0.0.1','11211'),
     //     array('127.0.0.2','11211')
     // );
    // $m->addServers($servers);
    // 查看一下运行状态
    echo $m->getResultCode();
    // 首先定义要存入缓存的数组
    $data = array(
        'key1'=>'value1',
        'key2'=>'value2'
    );
    //  * setMulti()
    //  * 第一个参数代表传入的数组,第二个参数代表生效时间,0代表永
    $m->setMulti($data,30);
    //定义获取缓存的key值得数组
    $get = array('key1','key2');
    /*
     * getMulti()
     * 传入需要获取缓存的key值
    */
    $result = $m->getMulti($get);
    var_dump($result);
    ?>
    
  • 更多MemcachedPHP操作请自行Google or Baidu

总结
  • 过程全记录,相比网络现存教程,更完整,更直白
  • 接下来是RedisMongodb

你可能感兴趣的:(LNMP下配置Memcached)