note 102495 deleted from memcache.getextendedstats by danbrown

[email protected] Thu, 17 Feb 2011 08:08:46 -0800
Newsgroups php.notes
Message-ID <[email protected]>
Note Submitter: vasiliy dott dolgov att gmail dott com 

----

Thanks to manmca. I use more simple code for single-server configuration.

<?php

/* OO style */
class MyMemcache extends Memcache{
  public function getAllKeys(){
    $keys = array();
    foreach(array_keys($this->getStats('slabs')) as $slab){
      $cdump = $this->getStats('cachedump',$slab);
      $keys = !is_null($cdump) ? $keys + array_keys($cdump) : $keys;
    }
    return $keys;
  }
}

$m = new MyMemcache();
$m->connect('127.0.0.1', 11211);
$keys = $m->getAllKeys();
print_r($keys);

/* Procedural style */
function memcache_get_all_keys($obj){
  $keys = array();
  foreach(array_keys(memcache_get_stats($obj,'slabs')) as $slab){
    $cdump = memcache_get_stats($obj,'cachedump',$slab);
    $keys = !is_null($cdump) ? $keys + array_keys($cdump) : $keys;
  }
  return $keys;
}

$m_obj = memcache_connect('127.0.0.1', 11211);
$keys = memcache_get_all_keys($m_obj);
print_r($keys);