memcached安装
1. 下载, memcached需要先安装libevent
memcached的下载地址:http://danga.com/memcached/download.bml
libevent的下载地址 :http://www.monkey.org/~provos/libevent/
2. 安装libevent
java 代码
- # tar xzvf libevent-1.3c.tar.gz
- # cd libevent-1.3c
- # ./configure --prefix=/home/mahaibo/install
- # make
- # make install
检查是否安装成功:
#cd /home/mahaibo/install/lib
如果有libevent-1.3c.so.1 libevent-1.3c.so.1.0.3 libevent.a libevent.la libevent.so
这几个文件存在,说明安装成功
3.安装memcached
java 代码
- # tar xzvf memcached-1.2.2.tar.gz
- # cd memcached-1.2.2
- # ./configure --with-libevent=/home/mahaibo/install --prefix=/home/mahaibo/installmemcache
- # make
- # make install
检查是否安装成功:
#cd /home/mahaibo/installmemcache/bin
如果memcached memcached-debug这2个文件存在,说明安装成功
4.执行
java 代码
- #cd /home/mahaibo/installmemcache/bin
-
- # ./memcached -h
如果出现:
java 代码
- memcached 1.2.2
- -p <num></num> TCP port number to listen on (default: 11211)
- -U <num></num> UDP port number to listen on (default: 0, off)
- -s <file></file> unix socket path to listen on (disables network support)
- -l <ip_addr></ip_addr> interface to listen on, default is INDRR_ANY
- -d run as a daemon
- -r maximize core file limit
- -u <username></username> assume identity of <username></username> (only when run as root)
- -m <num></num> max memory to use for items in megabytes, default is 64 MB
- -M return error on memory exhausted (rather than removing items)
- -c <num></num> max simultaneous connections, default is 1024
- -k lock down all paged memory
- -v verbose (print errors/warnings while in event loop)
- -vv very verbose (also print client commands/reponses)
- -h print this help and exit
- -i print memcached and libevent license
- -b run a managed instanced (mnemonic: buckets)
- -P <file></file> save PID in <file></file>, only used with -d option
- -f <factor></factor> chunk size growth factor, default 1.25
- -n <bytes></bytes> minimum space allocated for key+value+flags, default 48
说明安装成功,并且路径配置正确。
有可能会出现:
java 代码
- memcached: error while loading shared libraries: libevent-1.3c.so.1: cannot open shared object file: No such file or directory
说明 没有找到文件:libevent-1.3c.so.1
解决办法:
第一步. 查看下lib路径:
java 代码
- LD_DEBUG=libs /home/mahaibo/installmemcache/bin/memcached -v
结果为:
java 代码
- 27515: find library=libevent-1.3c.so.1 [0]; searching
- 27515: search path=tls/i686/sse2:tls/i686:tls/sse2:tls:i686/sse2:i686:sse2::/usr/local/lib/tls/i686/sse2:/usr/local/lib/tls/i686:/usr/local/lib/tls/sse2:/usr/local/lib/tls:/usr/local/lib/i686/sse2:/usr/local/lib/i686:/usr/local/lib/sse2:/usr/local/lib:/usr/local/BerkeleyDB.4.3/lib/tls/i686/sse2:/usr/local/BerkeleyDB.4.3/lib/tls/i686:/usr/local/BerkeleyDB.4.3/lib/tls/sse2:/usr/local/BerkeleyDB.4.3/lib/tls:/usr/local/BerkeleyDB.4.3/lib/i686/sse2:/usr/local/BerkeleyDB.4.3/lib/i686:/usr/local/BerkeleyDB.4.3/lib/sse2:/usr/local/BerkeleyDB.4.3/lib:/opt/Ice-3.1/lib/tls/i686/sse2:/opt/Ice-3.1/lib/tls/i686:/opt/Ice-3.1/lib/tls/sse2:/opt/Ice-3.1/lib/tls:/opt/Ice-3.1/lib/i686/sse2:/opt/Ice-3.1/lib/i686:/opt/Ice-3.1/lib/sse2:/opt/Ice-3.1/lib (LD_LIBRARY_PATH)
- 27515: trying file=tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=tls/i686/libevent-1.3c.so.1
- 27515: trying file=tls/sse2/libevent-1.3c.so.1
- 27515: trying file=tls/libevent-1.3c.so.1
- 27515: trying file=i686/sse2/libevent-1.3c.so.1
- 27515: trying file=i686/libevent-1.3c.so.1
- 27515: trying file=sse2/libevent-1.3c.so.1
- 27515: trying file=libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/tls/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/lib/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/tls/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/local/BerkeleyDB.4.3/lib/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/tls/sse2/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/i686/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/opt/Ice-3.1/lib/libevent-1.3c.so.1
- 27515: search path=/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib (system search path)
- 27515: trying file=/usr/lib/tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/tls/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/libevent-1.3c.so.1
- 27515: search cache=/etc/ld.so.cache
- 27515: search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686:/usr/lib/tls:/usr/lib/sse2:/usr/lib (system search path)
- 27515: trying file=/lib/tls/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/lib/tls/sse2/libevent-1.3c.so.1
- 27515: trying file=/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/lib/i686/sse2/libevent-1.3c.so.1
- 27515: trying file=/lib/i686/libevent-1.3c.so.1
- 27515: trying file=/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/lib/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/tls/i686/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/tls/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/sse2/libevent-1.3c.so.1
- 27515: trying file=/usr/lib/libevent-1.3c.so.1
- 27515:
- /home/mahaibo/installmemcache/bin/memcached: error while loading shared libraries: libevent-1.3c.so.1: cannot open shared object file: No such file or directory
第二步. 将libevent-1.3c.so.1拷贝到任何一个列出的lib 下就可以了。
或者 软链接
java 代码
- ln -s /Data/libevent/lib/libevent-1.3b.so.1 /usr/lib/libevent-1.3c.so.1
或者 修改vi /etc/profile文件。
java 代码
- export LIBRARY_PATH=:/usr/local/lib:"/usr/local/BerkeleyDB.4.3/lib":/usr/local/lib:/opt/Ice-3.1/lib:/usr/lib:/home/mahaibo/install/lib
启动服务 :
java 代码
- ./memcached -d -m 10 -u root -l 192.168.40.4 -p 12000 -c 256 -P /tmp/memcached.pid
参数说明:
-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-P是设置保存Memcache的pid文件