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....Memcache::getExtendedStats
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Memcache::getExtendedStats
Референца за `memcache.getextendedstats.php` со подобрена типографија и навигација.
Memcache::getExtendedStats
memcache_get_extended_stats
(PECL memcache >= 2.0.0)
Memcache::getExtendedStats -- memcache_get_extended_stats — Get statistics from all servers in pool
= NULL
— Lightweight Directory Access Protocol
$memcache,string
$type = ?,int
$slabid = ?,int
$limit = 100): array
Memcache::getExtendedStats() Добијте статистика од сите сервери во групата false.
Забелешка: Префрлањето може да се случи во која било фаза во кој било од методите, сè додека другите сервери се достапни, корисникот нема да забележи. Секаков вид грешки на сокет или на ниво на Memcached сервер (освен недостаток на меморија) може да предизвикаат префрлање. Нормални грешки на клиентот како додавање постоечки клуч нема да предизвикаат префрлање.
Параметри
type- Типот на статистика што треба да се преземе. Валидни вредности се {reset, malloc, maps, cachedump, slabs, items, sizes}. Според спецификацијата на протоколот memcached, овие дополнителни аргументи „се предмет на промена за погодност на развивачите на memcache“.
slabid-
Се користи во комбинација со
typeпоставено на cachedump за да се идентификува плочата од која треба да се исфрлат податоци. Командата cachedump го оптоварува серверот и строго треба да се користи за цели на отстранување грешки. limit-
Се користи во комбинација со
typeпоставено на cachedump за да се ограничи бројот на записи што треба да се исфрлат.
враќа дво-димензионален асоцијативен список со статистика на серверот. Клучовите на списокот соодветствуваат на host:port на серверот, а вредностите содржат индивидуална статистика на серверот. Неуспешниот сервер ќе има соодветен запис поставен на
Вратени вредности
Типот на статистика cachedump е отстранет од memcached демонот поради безбедносни причини. false
при неуспех.
Примери
Пример #1 Memcache::getExtendedStats() example
<?php
$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->addServer('failed_host', 11211);
$stats = $memcache_obj->getExtendedStats();
print_r($stats);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
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
)
Види Исто така
- Memcache::getVersion() - Добива статистика на серверот
- Memcache::getStats() - Враќа статус на серверот
Белешки од корисници 5 белешки
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;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;
}" 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.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