PHP – Memcache – lista de chaves

Este método lista todas as chaves do memcache armazenadas, despejando o cache.

/**
* @ param string $server

* @ param int $port

* @ param int $limit

* @ return array

*/

public function getMemcacheKeys ($server, $port, $limit = 10000)
{
$keysFound
= array();

$options
= $this->_options;
$server
= $options['servers'][0];
$memcache
= new Memcache;
$memcache
->connect($server, $port = 11211, 5);

$slabs
= $memcache->getExtendedStats('slabs');
foreach ($slabs as $serverSlabs) {
foreach ($serverSlabs as $slabId => $slabMeta) {
try {
$cacheDump
= $memcache->getExtendedStats('cachedump', (int) $slabId, 1000);
} catch (Exception $e) {
continue;
}

if (!is_array($cacheDump)) {
continue;
}

foreach ($cacheDump as $dump) {

if (!is_array($dump)) {
continue;
}

foreach ($dump as $key => $value) {
$keysFound
[] = $key;

if (count($keysFound) == $limit) {
return $keysFound;
}
}
}
}
}

return $keysFound;
}