memcached 安装
下载安装包
下载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
查看程序的默认查找路径
可以看到这里默认的查找路径有很多,在 /lib64/xxx 中,随便选择其中一个路径,利用软连接将libevent-xxx文件链接过去
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