CentOS7 memcached 安装

1.服务端安装

先去下载最新版memcached源码包,解压

[root@localhost etc]# cd /usr/local/src/
[root@localhost src]# wget http://www.memcached.org/files/memcached-1.5.12.tar.gz
[root@localhost src]# tar -zxvf memcached-1.5.12.tar.gz

编译安装

[root@localhost src]# cd memcached-1.5.12
[root@localhost memcached-1.5.12]# ./configure --prefix=/usr/local/memcached

 报错了,提示缺少依赖libevent

checking for libevent directory... configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/

      If it's already installed, specify its path using --with-libevent=/dir/

 去下载安装最新版libevent

[root@localhost src]# wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
[root@localhost src]# tar -zxvf libevent-2.1.8-stable.tar.gz
[root@localhost src]# cd libevent-2.1.8-stable
[root@localhost libevent-2.1.8-stable]# ./configure
[root@localhost libevent-2.1.8-stable]# make && make install

再次编译安装memcached

[root@localhost libevent-2.1.8-stable]# cd ../memcached-1.5.12
[root@localhost memcached-1.5.12]# ./configure --prefix=/usr/local/memcached
[root@localhost memcached-1.5.12]# make && make install

启动memcached

[root@localhost memcached-1.5.12]# /usr/local/memcached/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 12000

 参数的意义

  1. -d选项是启动一个守护进程
  2. -m是分配给Memcache使用的内存数量,单位是MB
  3. -u是运行Memcache的用户 -l是监听的服务器IP地址
  4. -p是设置Memcache监听的端口,最好是1024以上的端口
  5. -c选项是最大运行的并发连接数,默认是1024
  6. -P是设置保存Memcache的pid文件

 又遇到一个报错,找不到类库

/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory

找到这个类库的位置,然后创建软链接 

[root@localhost memcached-1.5.12]# find / -name libevent-2.1.so.6
/usr/local/lib/libevent-2.1.so.6
/usr/local/src/libevent-2.1.8-stable/.libs/libevent-2.1.so.6
[root@localhost memcached-1.5.12]# ln -s /usr/local/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6

再次启动,成功

[root@localhost memcached-1.5.12]# /usr/local/memcached/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 12000
[root@localhost memcached-1.5.12]# ps -ef | grep memcached
root     19790     1  0 06:11 ?        00:00:00 /usr/local/memcached/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 12000
root     19832  8633  0 06:12 pts/0    00:00:00 grep --color=auto memcached

2.客户端安装

libmemcacahed安装

Libmemcached是一个开源的Memcached客户端库,其内部实现了分布式管理、内存池等功能。通过API的形式提供出来,使用程序员可以专心上层业务逻辑,避免底层与memcached交互的细节,所以Libmemcached编译,安装之后就会以动态库的方式提供出来给程序员调用。

[root@localhost src]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/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
[root@localhost libmemcached-1.0.18]# make && make install

安装php-memcached扩展

下载php-memcached源码

[root@localhost src]# cd /usr/local/src/php-7.0.30/ext/
[root@localhost ext]# git clone https://github.com/php-memcached-dev/php-memcached.git memcached
[root@localhost ext]# cd memcached/
[root@localhost memcached]# git checkout php7

这里需要用到phpize来扩展php扩展模块

[root@localhost memcached]# /usr/local/php/bin/phpize
[root@localhost memcached]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached=/usr/lib/libmemcached --disable-memcached-sasl
[root@localhost memcached]# make && make install

编译成功

Build complete.
Don't forget to run 'make test'.

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

 可以看到已经生成了memcached.so文件了

[root@localhost memcached]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
memcached.so  opcache.a  opcache.so

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

extension=memcached.so

重新加载一下php配置文件,我的环境是LNMP所以reload一下php-fpm就好 

[www@localhost lib]$ systemctl reload php-fpm

已经可以看到扩展安装成功啦!! 

使用php简单操作memcached

<?php
echo '<pre>';

$m = new Memcached();//实例化Memcached类
$arr = [['127.0.0.1', 12000]];
$m->addServers($arr);//向连接池中添加一个memcache服务器

$result = $m->set('test', 'hello', 3600);//设置缓存值,有效时间3600秒,如果有效时间设置为0,则表示该缓存值永久存在的(系统重启前)
var_dump($result);

$result = $m->get('test');//从服务端检回一个元素
var_dump($result);

$result = $m->delete('test');//从服务端删除一个元素
var_dump($result);

memcache还有很多命令,这里只展示了最基本的命令

猜你喜欢

转载自blog.csdn.net/Derek_Yam/article/details/84594783
今日推荐