一、yum安装
1、Linux系统安装memcached,首先要先安装libevent库。
yum install libevent libevent-devel
2、安装memcached
yum install memcached
二、手动安装
1.下载libevent库。
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
2.安装
tar -zxvf libevent-2.0.21-stable.tar.gz cd ibevent-2.0.21-stable ./configure --prefix=/usr/local/libevent-2.0.21-stable make make install
3.检查是否安装成功
ls -al /usr/local/libevent-2.0.21-stable/lib | grep libevent
4.下载memcached
wget http://memcached.org/files/memcached-1.5.9.tar.gz
5.安装
tar -zxvf memcached-1.5.9.tar.gz cd memcached-1.5.9 ./configure -with-libevent=/usr/local/libevent-2.0.21-stable/ --prefix=/usr/local/memcached-1.5.9 make make install
三、启动
/usr/local/memcached/bin/memcached -d -m 87380m -c 5120 -p 11211 -u root
四、配置项
-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,这里是10MB, -u是运行Memcache的用户,这里是root, -l是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.200, -p是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照服务器的负载量来设定, -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,也可以启动多个守护进程,不过端口不能重复。 -s以unix域socket方式启动,后接用于FIFO通讯的文件绝对路径,例如:/run/memcached/memcached.sock。
五、通讯方式
客户端可以有两种方式与服务进程通信,分别是TCP和unix domain socket.
1.TCP
TCP是最常用的一种通讯方式,这种方式可以通过TCP网络连接远方的memcached服务器。
如果是客户端和服务端处于同一服务器,采用这种通讯方式就会带来而外不必要的传输开销,所以客服同机的情况下,应当采用unix域协议通信。
2.unix domain socket
unix domain socket是unix系统中特有的进程间通讯方式(IPC),两个进程通过管道(FIFO)互相通信,相比起TCP的开销更加小,但是只有在客服同机的情况下才能使用。
开启此方式的方法是让memcached服务进程以创建一个文件的方式,双方进程通过读写此文件进行通信,可以参考第六点的第2条命令。
所有通过此方式通讯的进程必须注意:
服务进程需要创建一个文件用于通信,所以服务进程必须具备指明路径下的创建文件的权限。
客户端进程必须有读写该文件的权限。
六、常用命令
1.启动后保存pid文件
/usr/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
2.用unix域socket方式启动
/usr/bin/memcached -d -u nginx -s /run/memcached/memcached.sock
七、在php中使用
php中自带了两个命名很相似的扩展memcache和memcached.
这两者的不同之处在于memcache是基于php自身编写的一个memcache客户端,unix和windows都可以找到相应版本。而memcached则是基于一个开源memcached客户端项目libmemcached.它是仅限于unix中的一个项目。
1.memcache
此扩展在PHP官方手册里就有详细的安装指南,在PECL中下载该扩展的最新版本。
2.memcached
在安装此扩展之前需要安装libmemcached客户端,此后再安装php扩展,在PECL中下载该扩展的最新版本。
安装libmemcached过程:
cd /usr/local/src 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=/usr/local/libmemcached make && make install
安装memcached扩展过程:
cd /usr/local/src wget http://pecl.php.net/get/memcached-3.1.5.tgz tar zxvf memcached-3.1.5.tgz cd memcached-3.1.5 /usr/local/php/bin/phpize --with-php-config=/usr/local/php/bin/php-config ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl make && make install
在安装此扩展的过程当中需要注意的是它的配置项:
配置项 | 作用 |
--with-libmemcached-dir |
指明libmemcached的安装路径 |
--disable-memcached-sasl |
带上该配置时禁用sasl功能 |