Answers
之前查询项目中超出一定大小的memcache值时,是用php的扩展查的,下边是代码,把判断大于阈值的控制语句去掉,应该就是遍历所有的key了:
<?php
/***** CONFIG *****/
$host = 'localhost';
$port = 12321;
$sizeLimit = 5000;
/******************/
$mem = new Memcache();
$mem->connect($host, $port);
$items = $mem->getExtendedStats('items');
$items = $items["$host:$port"]['items'];
// $items2 = $mem->getExtendedStats('stats detail dump');
if (!empty($items)) foreach ($items as $item) {
$number = $item['number'];
$str = $mem->getExtendedStats("cachedump", $number, 0);
$line = $str["$host:$port"];
foreach ($line as $key => $value) {
$v = $mem->get($key);
if (is_string($v)) {
$size = strlen($v);
} else {
$size = strlen(serialize($v));
}
if ($size >= $sizeLimit) {
echo "size:{$size},key:{$key}\n";
}
}
}
?>