ScotlandPHP

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStatsВозращает статистику со всех серверов в пуле

Описание

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

Memcache::getExtendedStats() возвращает двумерный ассоциативный массив, содержащий статистику сервера. Ключи массива соответствуют host:port сервера, а значения содержат статистику по данному серверу. Если не удалось извлечь данные для какого либо сервера, то соответствующее значение будет выставлено как FALSE. Вы также можете использовать функцию memcache_get_extended_stats().

Замечание:

Эта функция была добавлена в Memcache версии 2.0.0.

Список параметров

type

Тип статистики для извлечения. Корректные значения: reset, malloc, maps, cachedump, slabs, items, sizes. В соответствии со спецификацией протокола memcached, эти дополнительные аргументы "могут быть изменены для удобства разработчиков MemCache".

slabid

Используется совместно с type для указания из какого stab-файла делать выгрузку. Используется только в целях отладки. Команда cachedump пытается запустить сервер и должна использоваться только для отладки.

limit

Используется вместе с type для ограничения количества извлекаемых записей.

Внимание

Тип статистики cachedump был удален из демона memcached для безопасности.

Возвращаемые значения

Возвращает двумерный ассоциативный массив, содержащий статистику по серверам или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования 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);
?>

Результат выполнения данного примера:

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
)

Смотрите также

add a note add a note

User Contributed Notes 4 notes

up
8
manmca dot 2280 at gmail dot com
7 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
6 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
0
jcastromail at yahoo dot es
8 months 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
1 year 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