本来linux下安装memcache没什么很复杂的,今天发现有个小小的问题:由于libevent的安装源文件夹带有版本号等信息(带横线如libevent-1.4.9-stable结果导致编译错误)
CentOS Memcached安装系统能提高电脑更方便的使用性能。下面就这就来讲术CentOS Memcached安装。CentOSLinux使用了RHEL的源代码,但是由于这些源代码是Red Hat公司自由发布的,因此CentOS Linux的发布是完全合法的,CentOSLinux的使用者也不会遇到任何的版权问题。CentOS系统上CentOS Memcached安装。
1.CentOS Memcached安装前需要先安装Libevent:
# curl -Ohttp://www.monkey.org/~provos/libevent-1.4.9-stable.tar.gz
# tar zxflibevent-1.4.9-stable.tar.gz
# cd libevent-1.4.9-stable(如果编译错误重命名一下文件夹使不带版本信息,如下划线)
#./configure (最好指定–prefix=/pathName/ 不然有可能memcache找不到安装目录,当然memcached安装的时候也要指定–with-libevent=/pathName)
# make
# make install
2.继续CentOS Memcached安装:
# curl -Ohttp://www.danga.com/memcached/dist/memcached-1.2.7.tar.gz
# tar zxfmemcached-1.2.7.tar.gz
# cd memcached-1.2.7
# ./configure
#make
# make install
3.CentOS Memcached安装接着在当前用户的.bash_profile中添加
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
exportLD_LIBRARY_PATH
4.CentOS Memcached运行
# memcached -m 512 -u nobody-vv
测试时候发现会出现以下错误信息:
“/usr/local/memcached/bin/memcached: errorwhile loading shared libraries: libevent-1.4.so.2: cannot open sharedobject file: No such file or directory”
错误的原因是未在系统中注册Libevent.解决方法如下:
# vi /etc/ld.so.conf.d/libevent-i386.conf
在VI中输入以下一行内容:
/usr/local/lib/
最 后不要忘了
# ldconfig
5.CentOS Memcached运行
# memcached -m 512 -u nobody-vv
<6 server listening
<7 server listening
<8 sendbuffer was 109568, now 268435456
<8 server listening (udp)
<9send buffer was 109568, now 268435456
<9 server listening (udp)
CentOSMemcached运行正常。
以上介绍CentOS Memcached安装及运行检测。
6. 启动:
memcached -l 192.168.10.60 -d -p 11212 -u nobody -m 1024
上面的命令中-d表示用 daemon 的方式启动 memcached,-l和-p组合表示监听在 192.168.10.60 的 11212端口上(如果不用-p指定端口号,则memcached将运行在11211端口上),-u表示运行用户为 nobody,-m表示为其分配1024MB的内存。
7. 测试:
可以使用telnet连接到192.168.10.60的11212端口,连接成功以后,
先向memcached中添加一个key-value对,key为test1(后面的0 010所表示的具体含义,在下一篇文章中会详细介绍),value为testing001:
set test1 0 0 10
testing001
STORED
再从memcached中取回key为test1所对应的value:
get test1
VALUE test1 0 10
testing001
END
注:上面粗体表示系统输出的内容
如果能看到类似的输出,则证明memcached已经正确配置并启动成功了。
++++++++下面的这个是另外一个版本的,是在Javaeye上面找的++++++++++++++++
原文地址:http://www.javaeye.com/topic/110112
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文件