mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
121 lines
12 KiB
Markdown
121 lines
12 KiB
Markdown
# Memcache Commands
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
|
||
## Commands Cheat-Sheet
|
||
|
||
**Από** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
|
||
|
||
Οι υποστηριζόμενες εντολές (οι επίσημες και μερικές ανεπίσημες) είναι τεκμηριωμένες στο έγγραφο [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt).
|
||
|
||
Δυστυχώς, η περιγραφή σύνταξης δεν είναι πραγματικά σαφής και μια απλή εντολή βοήθειας που να απαριθμεί τις υπάρχουσες εντολές θα ήταν πολύ καλύτερη. Ακολουθεί μια επισκόπηση των εντολών που μπορείτε να βρείτε στην [πηγή](https://github.com/memcached/memcached) (από 19.08.2016):
|
||
|
||
| Command | Description | Example |
|
||
| -------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
|
||
| get | Διαβάζει μια τιμή | `get mykey` |
|
||
| set | Ορίζει ένα κλειδί χωρίς προϋποθέσεις | <p><code>set mykey <flags> <ttl> <size></code><br><br><p>Βεβαιωθείτε ότι χρησιμοποιείτε \r\n ως διαλείμματα γραμμών όταν χρησιμοποιείτε εργαλεία Unix CLI. Για παράδειγμα</p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
|
||
| add | Προσθέτει ένα νέο κλειδί | `add newkey 0 60 5` |
|
||
| replace | Επαναγράφει υπάρχον κλειδί | `replace key 0 60 5` |
|
||
| append | Προσθέτει δεδομένα σε υπάρχον κλειδί | `append key 0 60 15` |
|
||
| prepend | Προσθέτει δεδομένα πριν από υπάρχον κλειδί | `prepend key 0 60 15` |
|
||
| incr | Αυξάνει την αριθμητική τιμή του κλειδιού κατά τον καθορισμένο αριθμό | `incr mykey 2` |
|
||
| decr | Μειώνει την αριθμητική τιμή του κλειδιού κατά τον καθορισμένο αριθμό | `decr mykey 5` |
|
||
| delete | Διαγράφει ένα υπάρχον κλειδί | `delete mykey` |
|
||
| flush_all | Ακυρώνει όλα τα στοιχεία άμεσα | `flush_all` |
|
||
| flush_all | Ακυρώνει όλα τα στοιχεία σε n δευτερόλεπτα | `flush_all 900` |
|
||
| stats | Εκτυπώνει γενικά στατιστικά | `stats` |
|
||
| | Εκτυπώνει στατιστικά μνήμης | `stats slabs` |
|
||
| | Εκτυπώνει στατιστικά υψηλότερης κατανομής | `stats malloc` |
|
||
| | Εκτυπώνει πληροφορίες για τα στοιχεία | `stats items` |
|
||
| | | `stats detail` |
|
||
| | | `stats sizes` |
|
||
| | Επαναφέρει τους μετρητές στατιστικών | `stats reset` |
|
||
| lru_crawler metadump | Εξάγει (το μεγαλύτερο μέρος) των μεταδεδομένων για (όλα) τα στοιχεία στην κρυφή μνήμη | `lru_crawler metadump all` |
|
||
| version | Εκτυπώνει την έκδοση του διακομιστή. | `version` |
|
||
| verbosity | Αυξάνει το επίπεδο καταγραφής | `verbosity` |
|
||
| quit | Τερματίζει τη συνεδρία | `quit` |
|
||
|
||
#### Traffic Statistics <a href="#traffic-statistics" id="traffic-statistics"></a>
|
||
|
||
Μπορείτε να ερωτήσετε τις τρέχουσες στατιστικές κίνησης χρησιμοποιώντας την εντολή
|
||
```
|
||
stats
|
||
```
|
||
Θα λάβετε μια λίστα που παρέχει τον αριθμό των συνδέσεων, των byte εισόδου/εξόδου και πολλά άλλα.
|
||
|
||
Παράδειγμα Έξοδος:
|
||
```
|
||
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
|
||
```
|
||
#### Στατιστικά Μνήμης <a href="#memory-statistics" id="memory-statistics"></a>
|
||
|
||
Μπορείτε να ερωτήσετε τα τρέχοντα στατιστικά μνήμης χρησιμοποιώντας
|
||
```
|
||
stats slabs
|
||
```
|
||
Παράδειγμα Έξοδος:
|
||
```
|
||
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
|
||
```
|
||
Αν δεν είστε σίγουροι αν έχετε αρκετή μνήμη για την περίπτωση memcached σας, πάντα ελέγξτε τους μετρητές “evictions” που παρέχονται από την εντολή “stats”. Αν έχετε αρκετή μνήμη για την περίπτωση, ο μετρητής “evictions” θα πρέπει να είναι 0 ή τουλάχιστον να μην αυξάνεται.
|
||
|
||
#### Ποιοι Κωδικοί Χρησιμοποιούνται; <a href="#which-keys-are-used" id="which-keys-are-used"></a>
|
||
|
||
Δεν υπάρχει ενσωματωμένη λειτουργία για να προσδιορίσετε άμεσα το τρέχον σύνολο κωδικών. Ωστόσο, μπορείτε να χρησιμοποιήσετε την
|
||
```
|
||
stats items
|
||
```
|
||
εντολή για να προσδιορίσετε πόσα κλειδιά υπάρχουν.
|
||
```
|
||
stats items
|
||
STAT items:1:number 220
|
||
STAT items:1:age 83095
|
||
STAT items:2:number 7
|
||
STAT items:2:age 1405
|
||
[...]
|
||
END
|
||
```
|
||
Αυτό τουλάχιστον βοηθά να δούμε αν χρησιμοποιούνται κλειδιά. Για να εξάγετε τα ονόματα των κλειδιών από ένα σενάριο PHP που ήδη κάνει την πρόσβαση στο memcache, μπορείτε να χρησιμοποιήσετε τον κώδικα PHP από [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html).
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|