# Memcache-Befehle
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)! Andere Möglichkeiten, HackTricks zu unterstützen: * Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com) * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
## Befehls-Spickzettel **Von** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached) Die unterstützten Befehle (offizielle und inoffizielle) sind im Dokument [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) dokumentiert. Leider ist die Syntaxbeschreibung nicht wirklich klar, und ein einfacher Hilfsbefehl, der die vorhandenen Befehle auflistet, wäre viel besser. Hier ist eine Übersicht über die Befehle, die Sie in der [Quelle](https://github.com/memcached/memcached) finden können (Stand 19.08.2016): | Befehl | Beschreibung | Beispiel | | --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | get | Liest einen Wert | `get mykey` | | set | Setzt einen Schlüssel bedingungslos |

set mykey <flags> <ttl> <size>

<p>Stellen Sie sicher, dass Sie \r\n als Zeilenumbrüche verwenden, wenn Sie Unix CLI-Tools verwenden. Zum Beispiel</p> printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211

| | add | Fügt einen neuen Schlüssel hinzu | `add newkey 0 60 5` | | replace | Überschreibt einen vorhandenen Schlüssel | `replace key 0 60 5` | | append | Fügt Daten an einen vorhandenen Schlüssel an | `append key 0 60 15` | | prepend | Fügt Daten am Anfang eines vorhandenen Schlüssels ein | `prepend key 0 60 15` | | incr | Erhöht den numerischen Schlüsselwert um eine angegebene Zahl | `incr mykey 2` | | decr | Verringert den numerischen Schlüsselwert um eine angegebene Zahl | `decr mykey 5` | | delete | Löscht einen vorhandenen Schlüssel | `delete mykey` | | flush\_all | Invalidiert sofort alle Elemente | `flush_all` | | flush\_all | Invalidiert alle Elemente in n Sekunden | `flush_all 900` | | stats | Gibt allgemeine Statistiken aus | `stats` | | | Gibt Speicherstatistiken aus | `stats slabs` | | | Gibt Statistiken zur höheren Ebenenallokation aus | `stats malloc` | | | Gibt Informationen zu Elementen aus | `stats items` | | | | `stats detail` | | | | `stats sizes` | | | Setzt Statistikzähler zurück | `stats reset` | | lru\_crawler metadump | Gibt (die meisten) Metadaten für (alle) Elemente im Cache aus | `lru_crawler metadump all` | | version | Gibt die Serverversion aus | `version` | | verbosity | Erhöht das Protokolllevel | `verbosity` | | quit | Beendet die Sitzung | `quit` | #### Verkehrsstatistiken Sie können die aktuellen Verkehrsstatistiken mit dem Befehl abfragen ``` stats ``` Sie erhalten eine Auflistung, die die Anzahl der Verbindungen, Bytes in/out und vieles mehr anzeigt. Beispiel-Ausgabe: ``` 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 ``` #### Speicherstatistiken Sie können die aktuellen Speicherstatistiken abfragen, indem Sie folgenden Befehl verwenden: ``` stats slabs ``` # Memcache Commands Memcache is a widely used distributed memory caching system. It is often used to speed up dynamic web applications by caching data and reducing the load on the database. ## Basic Commands ### SET **Command**: `set [noreply]` **Description**: Sets the value of a key in the cache. **Parameters**: - ``: The key to set. - ``: Optional flags for the value. - ``: Optional expiration time in seconds. - ``: The number of bytes in the value. - `[noreply]`: Optional parameter to not wait for a response. **Example**: ``` set mykey 0 3600 5 hello ``` ### GET **Command**: `get ` **Description**: Retrieves the value of a key from the cache. **Parameters**: - ``: The key to retrieve. **Example**: ``` get mykey ``` ### DELETE **Command**: `delete ` **Description**: Deletes a key from the cache. **Parameters**: - ``: The key to delete. **Example**: ``` delete mykey ``` ## Advanced Commands ### STATS **Command**: `stats` **Description**: Retrieves statistics about the memcache server. **Example**: ``` stats ``` ### FLUSH_ALL **Command**: `flush_all` **Description**: Flushes all keys from the cache. **Example**: ``` flush_all ``` ### VERSION **Command**: `version` **Description**: Retrieves the version of the memcache server. **Example**: ``` version ``` ## Conclusion These are some of the basic and advanced commands that can be used with memcache. Understanding and utilizing these commands can greatly enhance your ability to work with memcache and optimize your web applications. ``` 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 ``` Wenn Sie sich nicht sicher sind, ob Sie genügend Speicherplatz für Ihre Memcached-Instanz haben, achten Sie immer auf die "Evictions"-Zähler, die vom "stats"-Befehl angegeben werden. Wenn Sie genügend Speicherplatz für die Instanz haben, sollte der "Evictions"-Zähler 0 sein oder zumindest nicht ansteigen. #### Welche Schlüssel werden verwendet? Es gibt keine integrierte Funktion, um den aktuellen Satz von Schlüsseln direkt zu bestimmen. Sie können jedoch den ``` stats items ``` ## Command to Determine How Many Keys Exist To determine the number of keys that exist in a Memcache server, you can use the `stats` command. This command provides statistics about the server, including the total number of keys stored. ```bash stats items ``` This command will return a list of items with their corresponding statistics. Look for the line that starts with `STAT items:`, which indicates the total number of items (keys) stored in the Memcache server. For example: ```bash STAT items:1:number 10 ``` In this example, the Memcache server has a total of 10 keys stored. ``` stats items STAT items:1:number 220 STAT items:1:age 83095 STAT items:2:number 7 STAT items:2:age 1405 [...] END ``` Dies hilft zumindest, um zu sehen, ob Schlüssel verwendet werden. Um die Schlüsselnamen aus einem PHP-Skript abzurufen, das bereits auf den Memcache zugreift, können Sie den PHP-Code von [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) verwenden.
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)! Andere Möglichkeiten, HackTricks zu unterstützen: * Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com) * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**