memcache遍历

stats命令

memcache的stats命令包括:

1.stats

2.stats reset

3.stats malloc

4.stats maps

5.stats sizes

6.stats slabs

7.stats items

8.stats cachedump slab_id limit_num

9.stats detail [on|off|dump]

通过命令完成遍历

通过这些stats命令我们就可以完成memcache存储的内容的遍历,OK,下面我们通过telnet直接连接到memcache通过这些命令来完成相关的操作。
telnet到192.168.15.225(局域网测试机器)的memcache服务器

执行stats items命令,可以看到出现 很多的items行。

执行stats cachedump 3 0命令。这里的3表示上面图中items后面的数字,0标示显示全部的数据,如果是1就标示只显示1条。
下图为执行后的结果,item后面的字符串为key

通过上面列出的key我们就可以遍历所有的数据了,下面我们取出某一条数据,key为Uc!uLh的数据。

到这里,你也许明白了怎么去遍历memcache的数据了。

代码实现

下面贴上一段php实现的遍历memcache数据的代码,其他语言可以参考代码自己实现。
1.<?php

2.$host=’192.168.15.225′;

3.$port=11211;

4.$mem=new Memcache();

5.$mem->connect($host,$port);

6.$items=$mem->getExtendedStats (‘items’);

7.$items=$items[“$host:$port”][‘items’];

8.foreach($items as $key=>$values){

9.$number=$key;;

10.$str=$mem->getExtendedStats (“cachedump”,$number,0);

11.$line=$str[“$host:$port”];

12.if( is_array($line) && count($line)>0){

13.foreach($lineas$key=>$value){

14.echo $key.’=>’;

15.print_r($mem->get($key));

16.echo “rn”;

17.}

18.}

19.}

20.?>

扩展功能

由此可以实现查找memcache某个前缀的key的数据,或者查询某些value的key。甚至实现数据库的like功能。请注意:遍历memcache的操作并没有memcache的get操作那么高效。

本文固定链接: http://www.ccsbbs.com.cn/archives/5929.html | 极限手指

该日志由 极限手指 于2013年03月05日发表在 PHP 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: memcache遍历 | 极限手指
【上一篇】
【下一篇】

memcache遍历:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!