西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > php教程 >

PHP遍历Memcache数据

时间:2016-06-27 20:25来源:未知 作者:好模板 点击:
Memcache的客户端操作一般都只提供了get,set,stats等简单的操作,但是在某些特殊时候,我们可能需要遍历Memcache的数据,Memcache自带的命令是不能实现的,我们需要通过程序来实现。下面看

Memcache的客户端操作一般都只提供了get,set,stats等简单的操作,但是在某些特殊时候,我们可能需要遍历Memcache的数据,Memcache自带的命令是不能实现的,我们需要通过程序来实现。下面看看PHP是如何遍历Memcache数据的。

PHP遍历Memcache数据实现的思路

1、stats items命令,查看所有的item.

[root@memcache ~]# telnet localhost 11211
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 stats items
 STAT items:1:number 2
 STAT items:1:age 190
 END

2、循环遍历stats cachedump 1 0命令。这里的1表示上面图中items后面的数字。0表示显示全部的数据,1表示显示1条。查看item后面的字符串为key.

stats cachedump 1 0
 ITEM key [10 b; 1446601997 s]
 ITEM name [8 b; 1446601966 s]
 END

3、循环遍历所有的key获取value值。

get key
 VALUE key 32 10
 leixuesong
 END

PHP实循环遍历Memcache数据的代码

$host='localhost';
 $port=11211;
 $mem=new Memcache();
 $mem->connect($host,$port);
 $items=$mem->getExtendedStats ('items');
 $items=$items["$host:$port"]['items'];
 foreach($items as $key=>$values){
 $number=$key;;
 $str=$mem->getExtendedStats ("cachedump",$number,0);
 $line=$str["$host:$port"];
 if( is_array($line) && count($line)>0){
 foreach($line as $key=>$value){
 echo $key.'=>';
 print_r($mem->get($key));
 echo "\r\n";
 }
 }
 }
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------