一、模块的安装启动
wget http://cdnetworks-kr-2.d1.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.10-stable.tar.gz
wget http://nchc.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
libevent
./configure
make
make install
vim /etc/ld.so.conf
/usr/local/libevent-2.0.22/lib/
ldconfig
wget http://memcached.org/files/memcached-1.4.25.tar.gz
小伙伴们FQ吧
tar xvf memcached-1.4.25.tar.gz
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt 文档
cd /usr/local/memcached-1.4.25/bin/
LD_DEBUG=libs /usr/local/memcached-1.4.25/bin/memcached -v
./memcached -d -m 10 -u nobody ./memcached -d -m 10 -u nobody -p 11212 -U 11213 ./memcached -d -m 10 -u nobody -p 11212 -U 11213 -s /tmp/memcached.socket 套接字路径 ./memcached -d -m 10 -u nobody -p 11212 -U 11213 -l 192.168.3.139 监听的ip地址
-p TCP监听端口; -U UDP监听端口;-s 指定Unix套接字的路径; -a Unix套接字的掩码;-l 指定监听的网络端口;
-d 作为守护进程; -r 内核文件的最大值限制; -u 指定的用户运行; -m 缓存条目的最大内存值; -M在内存耗尽时返回错误(而不是删除缓存条目); -c 限制同时的最大连接数;-k 锁定所有分页内存; -v 详细模式; -vv 非常详细的模式; -vvv极其详细的模式; -h打印帮助并退出; -i 打印Memcached和libevent许可; -P 指定保存PID文件的路径及文件名; -f 设置块大小的增长因子; -n 指定分配给key+value+flags的最小空间; -L尽量使用最大内存页; -D指定分隔符; -t使用的线程数; -R 通过该参数来设定限制值; -C禁止使用CAS; -b设置等待(积压)队列的限制; -B 设置绑定的协议; -I 设定每一个块页的大小;
[[email protected] bin]# ps -ef | grep memcached nobody 20524 1 0 19:34 ? 00:00:00 ./memcached -d -m 10 -u nobody -p 11212 -U 11213 root 20531 9071 0 19:34 pts/0 00:00:00 grep memcached [[email protected] bin]# lsof -p 20524 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME memcached 20524 nobody cwd DIR 8,3 4096 2 /
二、其他模块的安装
测试 telnet 192.168.15.134 11211 (1)damemtop perl 模块:perl Makefile.PL; make ; make install; AnyEvent http://search.cpan.org/dist/AnyEvent/lib/AnyEvent.pm http://www.cpan.org/authors/id/M/ML/MLEHMANN/AnyEvent-7.11.tar.gz YAML http://www.cpan.org/modules/by-module/YAML/ http://www.cpan.org/modules/by-module/YAML/YAML-1.15.tar.gz TermReadKey http://pkgs.repoforge.org/perl-TermReadKey/ cp damemtop.yaml /etc/ (2)memcached-init start-memcached start-stop-daemon http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz gcc start-stop-daemon.c -o start-stop-daemon cp start-stop-daemon /bin/ (3)memcached.sysv 718 cp memcached.sysv /etc/init.d/memcached_sysv 719 chkconfig --list | grep memcached_sysv 720 chkconfig --add | grep memcached_sysv 721 chkconfig --add memcached_sysv 722 chkconfig --list | grep memcached_sysv 723 chkconfig --level 35 memcached_sysv on 724 chkconfig --list | grep memcached_sysv (4)memcached-tool 735 ./memcached-tool 127.0.0.1:11211 display 736 ./memcached-tool 127.0.0.1:11211 737 ./memcached-tool 127.0.0.1:11211 stats 738 ./memcached-tool 127.0.0.1:11211 dump
三 、操作方法
<command name> <key> <flags> <exiptme> <bytes> [noreply]\r\n
或
cas <key> <flags> <exptime> <bytes> <cas unique> [noreply]\r\n
set存储指定数据;
add在没有该<key>的情况下存储数据;
replace在有该<key>的情况下存储数据;
append追加数据到尾部;
prepend追加数据到首部;
incr/decr 增加或减少某值
set a 36 0 5 12345 get a add a 36 0 5 abcde delete a stats stats slabs stats items flush_all //缓存刷新失效 flush_all 120 //120秒后缓存刷新失效 incr a 11 //增加或减少某值,不能对非数字的value操作 decr a 11
四、统计
stats items STAT items:1:number 6 STAT items:1:age 1161 STAT items:1:evicted 0 STAT items:1:evicted_nonzero 0 STAT items:1:evicted_time 0 STAT items:1:outofmemory 0 STAT items:1:tailrepairs 0 STAT items:1:reclaimed 0 STAT items:1:expired_unfetched 0 STAT items:1:evicted_unfetched 0 STAT items:1:crawler_reclaimed 0 STAT items:1:crawler_items_checked 0 STAT items:1:lrutail_reflocked 0 number 目录在这个类型存储下的条目 age 在算法LRU下, 最老条目经历的时间; evicted 在生存期满之前,才算法LRU中一个条目不得不被驱赶出缓存的次数; outofmemory: 该slabclass不能够存储新条目的次数。这种情况一般出现在启动Memcached服务器时使用了-M参数,或是在清楚条目时失败所致。 stats sizes STAT 96 7 STAT <条目大小> <条目数量>
五、nginx的编译
yum install -y zlib-devel gcc gcc-c++
编译nginx(略)
nginx的配置如下:
server { location / { set $memcached_key $uri; memcached_pass 127.0.0.1:11211; memcached_buffer_size 16k; memcached_read_timeout 30000; memcached_send_timeout 30000; default_type text/html; #error_page 404 @fallback; } location @fallback { proxy_pass http://192.168.3.139:8080; } }
完