操作方法
1、安装memcached需要先安装libevent Shell>tar zxvf libevent-1.4.14b-stable.tar.gz Shell>cd libevent-1.4.14b-stable Shell>./configure Shell>make && make install 2、安装memcached Shell>tar zxvf memcached-1.2.5.tar.tar Shell>cd memcached-1.2.5 Shell>./configure prefix=/usr/local/memcached 或者 ./configure -–prefix=/usr/local/memcached Shell>make && make install 3、启动memcached Shell>/usr/local/memcached/bin/memcached –p 11211 –d –u root –P /tmp/memcached.pid -P是表示使用TCP,默认端口为11211 -d表示后台启动一个守护进程(daemon) -u表示指定root用户启动,默认不能用root用户启动 -P表示进程的pid存放地点,此处“p”为大写“P” -l,后面跟IP地址,手工指定监听IP地址,默认所有IP都在监听 -m后面跟分配内存大小,以MB为单位,默认为64M -c最大运行并发连接数,默认为1024 -f 块大小增长因子,默认是1.25 -M 内存耗尽时返回错误,而不是删除项,即不用LRU算法 +++++memcached的集群 magent编译安装及常见错误 安装magent到/usr/local/下 # cd /usr/local # mkdir magent # cd magent/ wget http://memagent.googlecode.com/files/magent-0.6.tar.gz # tar zxvf magent-0.6.tar.gz # /sbin/ldconfig # sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile make 错误1: gcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c magent.c: In function ‘writev_list’: magent.c:729: error: ‘SSIZE_MAX’ undeclared (first use in this function) magent.c:729: error: (Each undeclared identifier is reported only once magent.c:729: error: for each function it appears in.) make: *** [magent.o] Error 1 解决办法: vi ketama.h 在开头加入 #ifndef SSIZE_MAX # define SSIZE_MAX 32767 #endif 错误2: gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o ketama.o ketama.c gcc -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a /usr/lib64/libevent.a(event.o): In function `gettime’: (.text+0×449): undefined reference to `clock_gettime’ /usr/lib64/libevent.a(event.o): In function `event_base_new’: (.text+0x72a): undefined reference to `clock_gettime’ collect2: ld returned 1 exit status make: *** [magent] Error 1 解决办法 vim Makefile CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 改为: CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64) 错误3:centos 6 [root@test magent]# make gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o ketama.o ketama.c gcc -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a gcc: /usr/lib64/libm.a:没有那个文件或目录 make: *** [magent] 错误 1 解决办法 ln -s /usr/lib64/libm.so /usr/lib64/libm.a 注:有可能还会报错 gcc: /usr/lib64/libevent.a: 没有那个文件或目录 如果有,可执行 vi Makefile 找到 LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a 修改 LIBS = /usr/libevent 的安装路径/libevent.a /usr/lib64/libm.a 例: LIBS = /usr/lib/libevent.a /usr/lib64/libm.a 查看magent是否安装成功 cd usr/bin/magent ./magent please provide -s "ip:port" argument