本文我们来分享关于memcache查看列出所有key方法及利用memkeys实时查看memcached key使用情况,smemkeys是tumblr开源的类似top的工具,可用于实时查看memcached的key使用情况.
memcache 查看列出所有key方法
今天在做一个memcache的session测试,但是在测试的过程中,发现memcache没有一个比较简单的方法可以直接象redis那样keys *列出所有的session key,并根据key get对应的session内容,于是,我开始查找资料,翻出来的大部分是一些memcache常用命令等,但是对列出key的办法,讲解却不多,于是来到google,找到了一个国外的资料.
具体的内容我套用我的测试环境中,操作如下.
1.cmd上登录memcache
> telnet 127.0.0.1 11211
2.列出所有keys
stats items // 这条是命令 stat items:7:number 1 stat items:7:age 188 end
3.通过itemid获取key
接下来基于列出的items id,本例中为7,第2个参数为列出的长度,0为全部列出.
stats cachedump 7 0 // 这条是命令 item sess_sidsvpc1473t1np08qnkvhf6j2 [183 b; 1394527347 s] end
4.通过get获取key值
上面的stats cachedump命令列出了我的session key,接下来就用get命令查找对应的session值.
get sess_sidsvpc1473t1np08qnkvhf6j2 //这条是命令 value sess_sidsvpc1473t1np08qnkvhf6j2 1440 1 83 sess_|a:5:{s:6:verify;s:32:e70981fd305170c41a5632b2a24bbcaa;s:3:uid;s:1:1 ;s:8:username;s:5:admin;s:9:logintime;s:19:2014-03-11 16:24:25;s:7:log inip;s:9:127.0.0.1;}
memkeys实时查看memcached key使用情况
memkeys
memkeys是tumblr开源的类似top的工具,可用于实时查看memcached的key使用情况.
memkeys安装
安装autoconf(要求版本2.68以上):
# wget -c http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz # tar zxvf autoconf-latest.tar.gz # cd autoconf-2.69 # ./configure # make && make install
安装其它依赖:
# yum install libpcap-devel pcre-devel ncurses-devel
安装memkeys:
# git clone https://github.com/tumblr/memkeys.git # cd memkeys # ./autogen.sh # ./configure # make && make install
memkeys使用:
# memkeys -h usage: memkeys -i nic [options] -d, --discard=thresh discard keys where req/s rate is below thresh -i, --interface=nic network interface to capture traffic on (required) -p, --port=port network port to capture memcache traffic on (default 11211) -r, --refresh=interval refresh the stats display every interval ms (default 500) -l, --logfile=file output logs to file -r, --report=report output data in report format (csv or curses, default curses) -h, --help this help -v, --verbose increase verbosity. may be used multiple times. -v, --version show program info and exit.
例子1:# memkeys -i eth0 -l /tmp/memkeys.log
例子2:# memkeys -i eth0 -d 10.0 -l /tmp/memkeys.log
