# Memcache Commands {{#include ../../banners/hacktricks-training.md}} ## Commands Cheat-Sheet **Da** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached) I comandi supportati (quelli ufficiali e alcuni non ufficiali) sono documentati nel documento [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt). Purtroppo la descrizione della sintassi non è molto chiara e un semplice comando di aiuto che elenchi i comandi esistenti sarebbe molto meglio. Ecco una panoramica dei comandi che puoi trovare nella [source](https://github.com/memcached/memcached) (a partire dal 19.08.2016): | Command | Description | Example | | -------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | get | Legge un valore | `get mykey` | | set | Imposta una chiave incondizionatamente |

set mykey

Assicurati di usare \r\n come interruzioni di riga quando usi strumenti CLI Unix. Ad esempio

printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211

| | add | Aggiunge una nuova chiave | `add newkey 0 60 5` | | replace | Sovrascrive una chiave esistente | `replace key 0 60 5` | | append | Aggiunge dati a una chiave esistente | `append key 0 60 15` | | prepend | Prepend dati a una chiave esistente | `prepend key 0 60 15` | | incr | Incrementa il valore numerico della chiave di un numero dato | `incr mykey 2` | | decr | Decrementa il valore numerico della chiave di un numero dato | `decr mykey 5` | | delete | Elimina una chiave esistente | `delete mykey` | | flush_all | Invalida immediatamente tutti gli elementi | `flush_all` | | flush_all | Invalida tutti gli elementi in n secondi | `flush_all 900` | | stats | Stampa statistiche generali | `stats` | | | Stampa statistiche di memoria | `stats slabs` | | | Stampa statistiche di allocazione di livello superiore | `stats malloc` | | | Stampa informazioni sugli elementi | `stats items` | | | | `stats detail` | | | | `stats sizes` | | | Resetta i contatori delle statistiche | `stats reset` | | lru_crawler metadump | Dump (la maggior parte) dei metadati per (tutti) gli elementi nella cache | `lru_crawler metadump all` | | version | Stampa la versione del server. | `version` | | verbosity | Aumenta il livello di log | `verbosity` | | quit | Termina la sessione | `quit` | #### Traffic Statistics Puoi interrogare le statistiche di traffico attuali utilizzando il comando ``` stats ``` Otterrai un elenco che fornisce il numero di connessioni, byte in/out e molto altro. Esempio di output: ``` STAT pid 14868 STAT uptime 175931 STAT time 1220540125 STAT version 1.2.2 STAT pointer_size 32 STAT rusage_user 620.299700 STAT rusage_system 1545.703017 STAT curr_items 228 STAT total_items 779 STAT bytes 15525 STAT curr_connections 92 STAT total_connections 1740 STAT connection_structures 165 STAT cmd_get 7411 STAT cmd_set 28445156 STAT get_hits 5183 STAT get_misses 2228 STAT evictions 0 STAT bytes_read 2112768087 STAT bytes_written 1000038245 STAT limit_maxbytes 52428800 STAT threads 1 END ``` #### Statistiche di Memoria Puoi interrogare le statistiche di memoria attuali utilizzando ``` stats slabs ``` Sure! Please provide the text you would like me to translate. ``` STAT 1:chunk_size 80 STAT 1:chunks_per_page 13107 STAT 1:total_pages 1 STAT 1:total_chunks 13107 STAT 1:used_chunks 13106 STAT 1:free_chunks 1 STAT 1:free_chunks_end 12886 STAT 2:chunk_size 100 STAT 2:chunks_per_page 10485 STAT 2:total_pages 1 STAT 2:total_chunks 10485 STAT 2:used_chunks 10484 STAT 2:free_chunks 1 STAT 2:free_chunks_end 10477 [...] STAT active_slabs 3 STAT total_malloced 3145436 END ``` Se non sei sicuro di avere abbastanza memoria per la tua istanza memcached, controlla sempre i contatori di "evictions" forniti dal comando "stats". Se hai abbastanza memoria per l'istanza, il contatore "evictions" dovrebbe essere 0 o almeno non in aumento. #### Quali Chiavi Sono Utilizzate? Non esiste una funzione integrata per determinare direttamente l'attuale insieme di chiavi. Tuttavia, puoi utilizzare il ``` stats items ``` comando per determinare quanti chiavi esistono. ``` stats items STAT items:1:number 220 STAT items:1:age 83095 STAT items:2:number 7 STAT items:2:age 1405 [...] END ``` Questo aiuta almeno a vedere se vengono utilizzate delle chiavi. Per estrarre i nomi delle chiavi da uno script PHP che già accede a memcache, puoi utilizzare il codice PHP di [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html). {{#include ../../banners/hacktricks-training.md}}