下载安装包
下载libevent
wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
下载memcached
wget https://memcached.org/files/memcached-1.5.20.tar.gz
编译安装
安装libevent
tar -zxvf libevent-2.1.11-stable.tar.gz
cd libevent-2.1.11-stable
#./configure --prefix=/usr/local/libevent 指定安装路径
./configure
make
make install
安装memcached
tar -zxvf memcached-1.5.20.tar.gz
cd memcached-1.5.20
#./configure --prefix=/usr/local/memcached 指定安装路径
./configure --with-libevent=../libevent-2.1.11-stable
make
make install
启动
/usr/local/bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /tmp/memcached.pid
启动参数
启动参数:
-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
-u是运行Memcache的用户,我们这里是root
-l是监听的服务器IP地址
-p(小写字母)是设置Memcache监听的端口,我们这里设置11211默认端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,我们这里设置了256,按照服务器的负载量来设定
-P(大写字母)是设置保存Memcache的pid文件,我们这里是保存在 /tmp/memcached.pid
可能出现的问题
error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory
提示找不到libevent-xxxx
原因一:缺少libevent-xxxx文件,没有安装libevent
原因二:程序按照默认路径没有找到该文件
首先 ldd /usr/local/bin/memcached 查看依赖
ldd /usr/local/bin/memcached
linux-vdso.so.1 => (0x00007fff5fd43000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa58d41f000)
libevent-2.1.so.6 => not found #(没有找到该文件)
libc.so.6 => /lib64/libc.so.6 (0x00007fa58ce09000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa58d641000)
可以看到没有找到libevent-xxx文件
使用 ‘find / -name libevent-2.1.so.6’ 查找该文件是否存在
[root@centos lib64]# find / -name libevent-2.1.so.6
/usr/local/lib/libevent-2.1.so.6
可以看到该文件在/usr/local/lib/目录下
LD_DEBUG=libs /usr/local/bin/memcached -v 查看程序的默认查找路径

ln -s /usr/local/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.0.so.6
再执行ldd /usr/local/bin/memcached
ldd /usr/local/bin/memcached
linux-vdso.so.1 => (0x00007fff35dfa000)
libevent-2.1.so.6 => /lib64/libevent-2.1.so.6 (0x00007f78d2c8b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f78d2a6f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f78d26a1000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f78d223e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f78d2edf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f78d203a000)
libz.so.1 => /lib64/libz.so.1 (0x00007f78d1e24000)
发现依赖都是OK的,重启执行启动命令
关闭memcached
#查看进程
ps -ef|grep memcached
#杀掉进程
kill -9 pid