CakeFest 2024: The Official CakePHP Conference

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStatsObtener estadísticas de todos los servidores en el grupo

Descripción

Memcache::getExtendedStats(string $type = ?, int $slabid = ?, int $limit = 100): array

Memcache::getExtendedStats() devuelve un array asociativo de dos dimensiones con estadísticas del servidor(es). Las llaves del array corresponden al servidor:puerto y los valores contienen las estadísticas de cada servidor. En caso de error el servidor tendrá su correspondiente entrada asignada a false. También puede usar la función memcache_get_extended_stats().

Nota:

Esta función fue añadida en la versión 2.0.0. de Memcache.

Parámetros

type

Tipo de estadísticas a capturar. Valores válidos son {reset, malloc, maps, cachedump, slabs, items, sizes}. Según la especificación del protocolo de memcached estos son los argumentos adicionales "pueden estar sujetos a cambios por conveniencia de los desarrolladores de memcache".

slabid

Usado en conjunto con cachedump en el type para identificar el slap desde donde volcar. El comando cachedump va en conjunto con el servidor y debe ser usado estrictamente para propósitos de depuración.

limit

Usado en conjunto con cachedump en el type para limitar el número de entradas a volcar.

Advertencia

El tipo cachedump stat ha sido eliminado del demonio memcached por razones de seguridad.

Valores devueltos

Devuelve un array asociativo de dos dimensiones con las estadísticas o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de Memcache::getExtendedStats()

<?php
$memcache_obj
= new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->addServer('failed_host', 11211);

$stats = $memcache_obj->getExtendedStats();
print_r($stats);
?>

El resultado del ejemplo sería:

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Ver también

add a note

User Contributed Notes 5 notes

up
9
manmca dot 2280 at gmail dot com
13 years ago
Get lists of all the keys stored in memcache server....

<?php
/**
* Function to get all memcache keys
* @author Manish Patel
* @Created: 28-May-2010
*/
function getMemcacheKeys() {

$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect to memcache server");

$list = array();
$allSlabs = $memcache->getExtendedStats('slabs');
$items = $memcache->getExtendedStats('items');
foreach(
$allSlabs as $server => $slabs) {
foreach(
$slabs AS $slabId => $slabMeta) {
$cdump = $memcache->getExtendedStats('cachedump',(int)$slabId);
foreach(
$cdump AS $keys => $arrVal) {
foreach(
$arrVal AS $k => $v) {
echo
$k .'<br>';
}
}
}
}
}
//EO getMemcacheKeys()
?>

Hope it helps....
up
3
oushunbao at 163 dot com
12 years ago
Get lists of all the keys stored in memcache server....

<?php
/**
* Function to get all memcache keys
* @author Manish Patel
* @Created: 28-May-2010
* @modified: 16-Jun-2011
*/
function getMemcacheKeys() {

$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect to memcache server");

$list = array();
$allSlabs = $memcache->getExtendedStats('slabs');
$items = $memcache->getExtendedStats('items');
foreach(
$allSlabs as $server => $slabs) {
foreach(
$slabs AS $slabId => $slabMeta) {
$cdump = $memcache->getExtendedStats('cachedump',(int)$slabId);
foreach(
$cdump AS $keys => $arrVal) {
if (!
is_array($arrVal)) continue;
foreach(
$arrVal AS $k => $v) {
echo
$k .'<br>';
}
}
}
}
}
//EO getMemcacheKeys()
?>

copy from up, but fix a warning
i only add one line: if (!is_array($arrVal)) continue;
up
1
Anonymous
5 years ago
the latest updated version:

function getMemcacheKeys() {

$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect to memcache server");

$list = array();
$allSlabs = $memcache->getExtendedStats('slabs');
foreach($allSlabs as $server => $slabs) {
foreach($slabs AS $slabId => $slabMeta) {
if (!is_int($slabId)) { continue; }
$cdump = $memcache->getExtendedStats('cachedump',(int)$slabId);
foreach($cdump AS $keys => $arrVal) {
if (!is_array($arrVal)) continue;
foreach($arrVal AS $k => $v) {
$list[] = $k;
}
}
}
}
return $list;
}
up
0
jcastromail at yahoo dot es
7 years ago
" The cachedump stat type has been removed from the memcached daemon due to security reasons. "

To the date, the version 1.4.5_4_gaa7839e (windows 64bits) still supports the command cachedump that its highly important to returns the keys stored.
up
0
eithed at gmail
7 years ago
In response to manmca dot 2280 at gmail dot com

This function makes the memcached read only, at least with the most recent version of PECL memcache (3.0.8) and most recent version of memcache (1.4.21), so if you're relying on this to overwrite / remove only certain keys you're in for a nasty suprise
To Top