function process_item($i) { $name = $i; $content = sendMemcacheCommand("get {$i}"); if (isset($content['VALUE'])) { $size = $content['VALUE'][$i]['stat']['size']; global $total_size; $total_size += $size; } else { $size = "?"; } return array("size" => $size, "key" => $i); }
function flushServer($server) { list($host, $port) = explode(':', $server); $resp = sendMemcacheCommand($host, $port, 'flush_all'); return $resp; }
function flushServer($server) { list($host, $port) = get_host_port_from_server($server); $resp = sendMemcacheCommand($host, $port, 'flush_all'); return $resp; }
function dumpCacheSlab($server, $slabId, $limit) { list($host, $port) = explode(':', $server); $resp = sendMemcacheCommand($host, $port, 'stats cachedump ' . $slabId . ' ' . $limit); return $resp; }
echo "<tr><td>", $theserver, "</td><td>", $theKey, " <br/>flag:", $r['VALUE'][$theKey]['stat']['flag'], " <br/>Size:", bsize($r['VALUE'][$theKey]['stat']['size']), "</td><td>", chunk_split($r['VALUE'][$theKey]['value'], 40), "</td>", '<td><a href="', $PHP_SELF, '&op=5&server=', (int) $_GET['server'], '&key=', base64_encode($theKey), "\">Delete</a></td>", "</tr>"; echo <<<EOB </tbody></table> <hr/> EOB; break; case 5: // item delete if (!isset($_GET['key']) || !isset($_GET['server'])) { echo "No key set!"; break; } $theKey = htmlentities(base64_decode($_GET['key'])); $theserver = $GLOBALS['MEMCACHE_SERVERS'][(int) $_GET['server']]; list($h, $p) = explode(':', $theserver); $r = sendMemcacheCommand($h, $p, 'delete ' . $theKey); echo 'Deleting ' . $theKey . ' : ' . $r; break; case 6: // flush server $theserver = $GLOBALS['MEMCACHE_SERVERS'][(int) $_GET['server']]; $r = flushServer($theserver); echo 'Flush ' . $theserver . " : " . $r; break; case 7: // flush stats $theserver = $GLOBALS['MEMCACHE_SERVERS'][(int) $_GET['server']]; $r = flushStats($theserver); echo 'Stats reset ' . $theserver . " : " . print_r($r, true); break; case 8:
} } return $res; } $server = $_GET['server']; $port = $_GET['port']; if ($server == '') { $server = 'localhost'; } if ((int) $port == 0) { $port = 11211; } $stats = sendMemcacheCommand($server, $port, "stats"); $stats = $stats['STAT']; // calc the amount of memory designated to items of certain size $stats_slabs = sendMemcacheCommand($server, $port, "stats slabs"); $stats_slabs = $stats_slabs['STAT']; $slabs = array(); $below1mb = 0; $below200k = 0; $below50k = 0; $below4k = 0; $below1k = 0; $below400b = 0; foreach ($stats_slabs as $name => $value) { $parts = explode(':', $name); $slabs[$parts[0]][$parts[1]] = $value; } foreach ($slabs as $slab => $values) { if ($values["chunk_size"] <= 400) { $below400b += $values["total_pages"] * 1024 * 1024;