Memcache安装

Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libeventlibevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)

1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr/local/libevent/;然后make;然后make install
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr/local/libevent;然后make;然后make install
这样就完成了LinuxMemcache服务器端的安装。详细的方法如下:

# cd /usr/local/src/tarbag
1. 先安装 libevent

# tar zxvf libevent-1.4.13-stable.tar.gz -C ../software
# cd ../software/libevent-1.4.13-stable
# ./configure –prefix=/usr/local/libevent
# make
# make install
#echo "/usr/local/libevent/lib/" >> /etc/ld.so.conf
#ldconfig
2. 测试 libevent 是否安装成功:

# ls -al /usr/local/libevent/lib | grep libevent
lrwxrwxrwx  1 root root     21 01-15 10:28 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
-rwxr-xr-x  1 root root 308592 01-15 10:28 libevent-1.4.so.2.1.3
-rw-r--r--  1 root root 395670 01-15 10:28 libevent.a
lrwxrwxrwx  1 root root     26 01-15 10:28 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3
-rwxr-xr-x  1 root root 110070 01-15 10:28 libevent_core-1.4.so.2.1.3
-rw-r--r--  1 root root 149672 01-15 10:28 libevent_core.a
-rwxr-xr-x  1 root root    866 01-15 10:28 libevent_core.la
lrwxrwxrwx  1 root root     26 01-15 10:28 libevent_core.so -> libevent_core-1.4.so.2.1.3
lrwxrwxrwx  1 root root     27 01-15 10:28 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x  1 root root 246915 01-15 10:28 libevent_extra-1.4.so.2.1.3
-rw-r--r--  1 root root 308154 01-15 10:28 libevent_extra.a
-rwxr-xr-x  1 root root    873 01-15 10:28 libevent_extra.la
lrwxrwxrwx  1 root root     27 01-15 10:28 libevent_extra.so -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x  1 root root    831 01-15 10:28 libevent.la
lrwxrwxrwx  1 root root     21 01-15 10:28 libevent.so -> libevent-1.4.so.2.1.3
3. 安装 memcached ,同时需要安装中指定 libevent 的安装位置:

# cd /usr/local/src/tarbag
# tar zxvf memcached-1.4.0.tar.gz -C ../software
# cd ../software/memcached-1.4.0
# ./configure  --prefix=/usr/local/memcached/ –with-libevent=/usr/local/libevent
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。

安装完成后会memcached的工作目录是/usr/local/memcached/

4测试是否成功安装memcached

# ls -al /usr/local/memcached/bin/*
-rwxr-xr-x  1 root root 237953 Jun 29 14:12 /usr/local/memcached/bin/memcached

memcached 的基本设置
1. 启动 Memcache 的服务器端:
# /usr/local/memcached/bin/memcached -d -m 10 -u root -l 10.0.0.204 -p 12000 -c 256 -P /tmp/memcached.pid
-d 选项是启动一个守护进程,
-m 是分配给 Memcache 使用的内存数量,单位是 MB ,我这里是 10MB
-u 是运行 Memcache 的用户,我这里是 root
-l 是监听的服务器 IP 地址,如果有多个地址的话,我这里指定了服务器的 IP 地址 192.168.51.207
-p 是设置 Memcache 监听的端口,我这里设置了 12000 ,最好是 1024 以上的端口,
-c 选项是最大运行的并发连接数,默认是 1024 ,我这里设置了 256 ,按照你服务器的负载量来设定,
-P 是设置保存 Memcache pid 文件,我这里是保存在  /tmp/memcached.pid

2.如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。

最后,设置下开始启动:

#echo "/usr/local/memcached/bin/memcached -d -m 10 -u root -l 10.0.0.204 -p 12000 -c 256 -P /tmp/memcached.pid" >> /etc/rc.local
启动 memcache 可能会发生的问题 :

/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file

# 一般对于这种依赖的库找不到的情况,在 linux 中可以通过设置 LD_DEBUG 环境变量来获得更多的信息

#LD_DEBUG=help ls
Valid options for the LD_DEBUG environment variable are:
  libs       display library search paths
 reloc      display relocation processing
 files      display progress for input file
 symbols    display symbol table processing
 bindings   display information about symbol binding
 versions   display version dependencies
 all        all previous options combined
 statistics display relocation statistics
 unused     determined unused DSOs
 help       display this help message and exit
 To direct the debugging output into a file instead of standard output
a filename can be specified using the LD_DEBUG_OUTPUT environment variable.
# 这里由于是库文件依赖有问题,则使用 libs 参数

#LD_DEBUG=libs /usr/local/memcached/bin/memcached -h                                                            
    13293:    find library=libevent-2.0.so.5 [0]; searching                                                                      
    13293:     search cache=/etc/ld.so.cache
    13293:     search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/l)
    13293:      trying file=/lib/tls/i686/sse2/libevent-2.0.so.5                                                                 
    13293:      trying file=/lib/tls/i686/libevent-2.0.so.5                                                                      
    13293:      trying file=/lib/tls/sse2/libevent-2.0.so.5                                                                      
    13293:      trying file=/lib/tls/libevent-2.0.so.5                                                                           
    13293:      trying file=/lib/i686/sse2/libevent-2.0.so.5                                                                     
    13293:      trying file=/lib/i686/libevent-2.0.so.5                                                                          
    13293:      trying file=/lib/sse2/libevent-2.0.so.5                                                                          
    13293:      trying file=/lib/libevent-2.0.so.5                                                                              
    13293:      trying file=/usr/lib/tls/i686/sse2/libevent-2.0.so.5                                                             
    13293:      trying file=/usr/lib/tls/i686/libevent-2.0.so.5                                                                  
    13293:      trying file=/usr/lib/tls/sse2/libevent-2.0.so.5                                                                  
    13293:      trying file=/usr/lib/tls/libevent-2.0.so.5                                                                       
    13293:      trying file=/usr/lib/i686/sse2/libevent-2.0.so.5                                                                 
    13293:      trying file=/usr/lib/i686/libevent-2.0.so.5                                                                     
    13293:      trying file=/usr/lib/sse2/libevent-2.0.so.5                                                                      
    13293:      trying file=/usr/lib/libevent-2.0.so.5                                                                            
 /usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
# 可以看到在加载 /usr/lib/libevent-2.0.so.5 文件时出现了问题,先在系统中查找该文件

#find /usr/ -name " libevent-2.0.so*"
/usr/local/libevent/lib/libevent-2.0.so.5
/usr/local/libevent/lib/libevent-2.0.so.5.0.1
# 通过查找发现在 /usr/local/libevent/lib 目录下有该文件,通过软链接方式可以解决

# ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值