Memcached - Kurzanleitung
Memcached ist ein Open-Source-Caching-System mit verteiltem Speicher und hoher Leistung, das dynamische Webanwendungen beschleunigen soll, indem die Datenbanklast reduziert wird. Es ist ein Schlüsselwertwörterbuch mit Zeichenfolgen, Objekten usw., die im Speicher gespeichert sind und aus Datenbankaufrufen, API-Aufrufen oder dem Rendern von Seiten resultieren.
Memcached wurde 2003 von Brad Fitzpatrick für LiveJournal entwickelt. Derzeit wird es jedoch unter anderem von Netlog, Facebook, Flickr, Wikipedia, Twitter und YouTube verwendet.
Die Hauptmerkmale von Memcached sind:
Es ist Open Source.
Memcached Server ist eine große Hash-Tabelle.
Dies reduziert die Datenbanklast erheblich
Es ist perfekt effizient für Websites mit hoher Datenbanklast.
Es wird unter der Berkeley Software Distribution (BSD) -Lizenz vertrieben.
Es ist eine Client-Server-Anwendung über TCP oder UDP.
Memcached ist nicht -
ein persistenter Datenspeicher
eine Datenbank
application-specific
ein großer Objekt-Cache
fehlertolerant oder hoch verfügbar
Installieren von Memcached unter Ubuntu
Um Memcached unter Ubuntu zu installieren, gehen Sie zum Terminal und geben Sie die folgenden Befehle ein:
$sudo apt-get update
$sudo apt-get install memcached
Memcached-Installation bestätigen
Um zu bestätigen, ob Memcached installiert ist oder nicht, müssen Sie den folgenden Befehl ausführen. Dieser Befehl zeigt, dass Memcached auf dem Standardport ausgeführt wird11211.
$ps aux | grep memcached
Führen Sie den folgenden Befehl aus, um den Memcached-Server an einem anderen Port auszuführen. Dieser Befehl startet den Server am TCP-Port 11111 und überwacht den UDP-Port 11111 als Daemon-Prozess.
$memcached -p 11111 -U 11111 -u user -d
Sie können mehrere Instanzen von Memcached Server über eine einzige Installation ausführen.
Memcached Java Environment Setup
Um Memcached in Ihrem Java-Programm verwenden zu können, müssen Sie es herunterladen spymemcached-2.10.3.jar und richten Sie dieses Glas in den Klassenpfad ein.
Um eine Verbindung zu einem Memcached-Server herzustellen, müssen Sie den Befehl telnet für HOST- und PORT-Namen verwenden.
Syntax
Die grundlegende Syntax des Befehls Memcached Telnet lautet wie folgt:
$telnet HOST PORT
Hier, HOST und PORT sind die IP-Adresse des Computers bzw. die Portnummer, auf der der Memcached-Server ausgeführt wird.
Beispiel
Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einem Memcached-Server herstellen und einen einfachen Befehl set and get ausführen. Angenommen, der Memcached-Server wird auf Host 127.0.0.1 und Port 11211 ausgeführt.
$telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
// now store some data and get it from memcached server
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
Verbindung von der Java-Anwendung
Um den Memcached-Server von Ihrem Java-Programm aus zu verbinden, müssen Sie das Memcached-JAR wie im vorherigen Kapitel gezeigt in Ihren Klassenpfad einfügen. Angenommen, der Memcached-Server wird auf Host 127.0.0.1 und Port 11211 ausgeführt. -
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
//not set data into memcached server
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
//Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:memcached.
Das Terminal zeigt möglicherweise auch einige Informationsmeldungen an, die ignoriert werden können.
Memcached set Mit dem Befehl wird ein neuer Wert auf einen neuen oder vorhandenen Schlüssel festgelegt.
Syntax
Die grundlegende Syntax von Memcached set Befehl ist wie unten gezeigt -
set key flags exptime bytes [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten gespeichert und aus Memcached abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die in Memcached gespeichert werden müssen.
noreply (optional) - Dieser Parameter weist den Server an, keine Antwort zu senden.
value- Es sind die Daten, die gespeichert werden müssen. Die Daten müssen in der neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
ERROR zeigt falsche Syntax oder Fehler beim Speichern von Daten an.
Beispiel
Im folgenden Beispiel verwenden wir tutorialspoint als Schlüssel und setzen den darin gespeicherten Wert Memcached mit einer Ablaufzeit von 900 Sekunden.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
Memcached
END
Festlegen von Daten mithilfe einer Java-Anwendung
Um einen Schlüssel im Memcached-Server festzulegen, müssen Sie Memcached verwenden set Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached addBefehl wird verwendet, um einen Wert auf einen neuen Schlüssel zu setzen. Wenn der Schlüssel bereits vorhanden ist, wird die Ausgabe NOT_STORED ausgegeben.
Syntax
Die grundlegende Syntax von Memcached add Befehl ist wie unten gezeigt -
add key flags exptime bytes [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten gespeichert und aus Memcached abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die in Memcached gespeichert werden müssen.
noreply (optional) - Dieser Parameter weist den Server an, keine Antwort zu senden.
value- Es sind die Daten, die gespeichert werden müssen. Die Daten müssen in der neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
NOT_STORED zeigt an, dass die Daten nicht in Memcached gespeichert sind.
Beispiel
Im folgenden Beispiel verwenden wir 'Schlüssel' als Schlüssel und addieren den darin gespeicherten Wert mit einer Ablaufzeit von 900 Sekunden.
add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
Memcached
END
Fehlerausgabe
add key 0 900 5
redis
NOT_STORED
Hinzufügen von Daten mit Java-Anwendung
Um Daten auf einem Memcached-Server hinzuzufügen, müssen Sie Memcached verwenden add Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("add status:"+mcc.add("tutorialspoint", 900, "redis").done);
System.out.println("add status:"+mcc.add("tp", 900, "redis").done);
// Get value from cache
System.out.println("Get from Cache tp:"+mcc.get("tp"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
add status:false
add status:true
Get from Cache tp:redis
Memcached replaceBefehl wird verwendet, um den Wert eines vorhandenen Schlüssels zu ersetzen. Wenn der Schlüssel nicht vorhanden ist, wird die Ausgabe NOT_STORED ausgegeben.
Syntax
Die grundlegende Syntax von Memcached replace Befehl ist wie unten gezeigt -
replace key flags exptime bytes [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten gespeichert und aus Memcached abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die im Memcached gespeichert werden müssen.
noreply (optional) - Dieser Parameter weist den Server an, keine Antwort zu senden.
value- Es sind die Daten, die gespeichert werden müssen. Die Daten müssen in der neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
NOT_STORED zeigt an, dass die Daten nicht in Memcached gespeichert sind.
Beispiel
Im folgenden Beispiel verwenden wir 'Schlüssel' als Schlüssel und speichern darin zwischengespeicherte Speicher mit einer Ablaufzeit von 900 Sekunden. Danach wird derselbe Schlüssel durch den Wert 'redis' ersetzt.
add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
memcached
END
replace key 0 900 5
redis
get key
VALUE key 0 5
redis
END
Daten durch Java-Anwendung ersetzen
Um Daten auf einem Memcached-Server zu ersetzen, müssen Sie Memcached verwenden replace Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// now replace the existing data
System.out.println("Replace cache:"+mcc.replace("tutorialspoint", 900, "redis").done);
// get the updated data
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:memcached
Replace cache:true
Get from Cache:redis
Memcached appendMit dem Befehl werden einige Daten zu einem vorhandenen Schlüssel hinzugefügt. Die Daten werden nach den vorhandenen Daten des Schlüssels gespeichert.
Syntax
Die grundlegende Syntax von Memcached append Befehl ist wie unten gezeigt -
append key flags exptime bytes [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten gespeichert und aus Memcached abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die in Memcached gespeichert werden müssen.
noreply (optional) - Dies ist ein Parameter, der den Server darüber informiert, dass keine Antwort gesendet wird.
value- Es sind die Daten, die gespeichert werden müssen. Die Daten müssen in der neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
NOT_STORED Gibt an, dass der Schlüssel auf dem Memcached-Server nicht vorhanden ist.
CLIENT_ERROR zeigt einen Fehler an.
Beispiel
Im folgenden Beispiel versuchen wir, einige Daten in einen Schlüssel einzufügen, der nicht vorhanden ist. Daher kehrt Memcached zurückNOT_STORED. Danach setzen wir einen Schlüssel und hängen Daten an.
append tutorials 0 900 5
redis
NOT_STORED
set tutorials 0 900 9
memcached
STORED
get tutorials
VALUE tutorials 0 14
memcached
END
append tutorials 0 900 5
redis
STORED
get tutorials
VALUE tutorials 0 14
memcachedredis
END
Daten mit Java-Anwendung anhängen
Um Daten auf einem Memcached-Server anzuhängen, müssen Sie Memcached verwenden append Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// now append some data into existing key
System.out.println("Append to cache:"+mcc.append("tutorialspoint", "redis").isDone());
// get the updated key
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
set status:true
Get from Cache:memcached
Append to cache:true
Get from Cache:memcachedredis
Memcached prependMit dem Befehl werden einige Daten zu einem vorhandenen Schlüssel hinzugefügt. Die Daten werden vor den vorhandenen Daten des Schlüssels gespeichert.
Syntax
Die grundlegende Syntax von Memcached prepend Befehl ist wie unten gezeigt -
prepend key flags exptime bytes [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten in Memcached gespeichert und abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die in Memcached gespeichert werden müssen.
noreply (optional) −Es ist ein Parameter, der den Server darüber informiert, dass keine Antwort gesendet wird.
value- Es sind die Daten, die gespeichert werden müssen. Daten müssen in der neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
NOT_STORED Gibt an, dass der Schlüssel auf dem Memcached-Server nicht vorhanden ist.
CLIENT_ERROR zeigt einen Fehler an.
Beispiel
Im folgenden Beispiel fügen wir einige Daten zu einem Schlüssel hinzu, der nicht vorhanden ist. Daher kehrt Memcached zurückNOT_STORED. Danach setzen wir einen Schlüssel und stellen Daten voran.
prepend tutorials 0 900 5
redis
NOT_STORED
set tutorials 0 900 9
memcached
STORED
get tutorials
VALUE tutorials 0 14
memcached
END
prepend tutorials 0 900 5
redis
STORED
get tutorials
VALUE tutorials 0 14
redismemcached
END
Stellen Sie Daten mit der Java-Anwendung voran
Um Daten auf einem Memcached-Server voranzustellen, müssen Sie Memcached verwenden prepend Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// now append some data into existing key
System.out.println("Prepend to cache:"+mcc.prepend("tutorialspoint", "redis").isDone());
// get the updated key
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
set status:true
Get from Cache:memcached
Prepend to cache:true
Get from Cache:redismemcached
CAS steht für Check-And-Set oder Compare-And-Swap. MemcachedCASMit dem Befehl werden die Daten festgelegt, wenn sie seit dem letzten Abruf nicht aktualisiert wurden. Wenn der Schlüssel in Memcached nicht vorhanden ist, wird er zurückgegebenNOT_FOUND.
Syntax
Die grundlegende Syntax von Memcached CAS Befehl ist wie unten gezeigt -
set key flags exptime bytes unique_cas_key [noreply]
value
Die Schlüsselwörter in der Syntax lauten wie folgt:
key - Dies ist der Name des Schlüssels, mit dem Daten gespeichert und aus Memcached abgerufen werden.
flags - Dies ist die 32-Bit-Ganzzahl ohne Vorzeichen, die der Server mit den vom Benutzer bereitgestellten Daten speichert und beim Abrufen des Elements zusammen mit den Daten zurückgibt.
exptime- Dies ist die Ablaufzeit in Sekunden. 0 bedeutet keine Verzögerung. Wenn die Exptime mehr als 30 Tage beträgt, verwendet Memcached sie als UNIX-Zeitstempel für den Ablauf.
bytes- Es ist die Anzahl der Bytes im Datenblock, die gespeichert werden müssen. Dies ist die Länge der Daten, die in Memcached gespeichert werden müssen.
unique_cas_key - Es ist der eindeutige Schlüssel get from get Befehl.
noreply (optional) - Dieser Parameter weist den Server an, keine Antwort zu senden.
value- Es sind die Daten, die gespeichert werden müssen. Daten müssen in einer neuen Zeile übergeben werden, nachdem der Befehl mit den oben genannten Optionen ausgeführt wurde.
Ausgabe
Die Ausgabe des Befehls ist wie folgt:
STORED
STORED zeigt Erfolg an.
ERROR Zeigt einen Fehler beim Speichern von Daten oder eine falsche Syntax an.
EXISTS zeigt an, dass jemand die CAS-Daten seit dem letzten Abruf geändert hat.
NOT_FOUND Gibt an, dass der Schlüssel auf dem Memcached-Server nicht vorhanden ist.
Beispiel
Um einen CAS-Befehl in Memcached auszuführen, müssen Sie ein CAS-Token aus dem Memcached-Get-Befehl abrufen.
cas tp 0 900 9
ERROR
cas tp 0 900 9 2
memcached
set tp 0 900 9
memcached
STORED
gets tp
VALUE tp 0 9 1
memcached
END
cas tp 0 900 5 2
redis
EXISTS
cas tp 0 900 5 1
redis
STORED
get tp
VALUE tp 0 5
redis
END
CAS Verwenden der Java-Anwendung
Um CAS-Daten von einem Memcached-Server abzurufen, müssen Sie Memcached verwenden gets Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").isDone());
// Get cas token from cache
long castToken = mcc.gets("tutorialspoint").cas;
System.out.println("Cas token:"+castToken);
// now set new data in memcached server
System.out.println("Now set new data:"+mcc.cas("tutorialspoint",
castToken, 900, "redis"));
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
set status:true
Cas token:3
Now set new data:OK
Get from Cache:redis
Memcached getBefehl wird verwendet, um den am Schlüssel gespeicherten Wert abzurufen. Wenn der Schlüssel in Memcached nicht vorhanden ist, gibt er nichts zurück.
Syntax
Die grundlegende Syntax von Memcached get Befehl ist wie unten gezeigt -
get key
Beispiel
Im folgenden Beispiel verwenden wir tutorialspoint als Schlüssel und speichern darin zwischengespeicherte Speicher mit einer Ablaufzeit von 900 Sekunden.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
Daten mit Java-Anwendung abrufen
Um Daten von einem Memcached-Server abzurufen, müssen Sie Memcached verwenden get Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached getsBefehl wird verwendet, um den Wert mit CAS-Token abzurufen. Wenn der Schlüssel in Memcached nicht vorhanden ist, gibt er nichts zurück.
Syntax
Die grundlegende Syntax von Memcached gets Befehl ist wie unten gezeigt -
get key
Beispiel
set tutorialspoint 0 900 9
memcached
STORED
gets tutorialspoint
VALUE tutorialspoint 0 9 1
memcached
END
In diesem Beispiel verwenden wir tutorialspoint als Schlüssel und speichern darin zwischengespeicherte Speicher mit einer Ablaufzeit von 900 Sekunden.
CAS-Daten mit Java-Anwendung abrufen
Um CAS-Daten von einem Memcached-Server abzurufen, müssen Sie Memcached verwenden gets Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.gets("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:{CasValue 2/memcached}
Memcached delete Mit dem Befehl wird ein vorhandener Schlüssel vom Memcached-Server gelöscht.
Syntax
Die grundlegende Syntax von Memcached delete Befehl ist wie unten gezeigt -
delete key [noreply]
Ausgabe
Der CAS-Befehl kann eines der folgenden Ergebnisse erzeugen:
DELETED zeigt erfolgreiches Löschen an.
ERROR Zeigt einen Fehler beim Löschen von Daten oder eine falsche Syntax an.
NOT_FOUND Gibt an, dass der Schlüssel auf dem Memcached-Server nicht vorhanden ist.
Beispiel
In diesem Beispiel verwenden wir tutorialspoint als Schlüssel und speichern darin zwischengespeicherte Speicher mit einer Ablaufzeit von 900 Sekunden. Danach wird der gespeicherte Schlüssel gelöscht.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
delete tutorialspoint
DELETED
get tutorialspoint
END
delete tutorialspoint
NOT_FOUND
Daten mit Java-Anwendung löschen
Um Daten von einem Memcached-Server zu löschen, müssen Sie Memcached verwenden delete Methode.
Beispiel
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessful.");
// add data to memcached server
Future fo = mcc.set("tutorialspoint", 900, "World's largest online tutorials library");
// print status of set method
System.out.println("set status:" + fo.get());
// retrieve and check the value from cache
System.out.println("tutorialspoint value in cache - " + mcc.get("tutorialspoint"));
// try to add data with existing key
Future fo = mcc.delete("tutorialspoint");
// print status of delete method
System.out.println("delete status:" + fo.get());
// retrieve and check the value from cache
System.out.println("tutorialspoint value in cache - " + mcc.get("codingground"));
// Shutdowns the memcached client
mcc.shutdown();
}catch(Exception ex)
System.out.println(ex.getMessage());
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
set status:true
tutorialspoint value in cache - World's largest online tutorials library
delete status:true
tutorialspoint value in cache - null
Memcached delete Mit dem Befehl wird ein vorhandener Schlüssel vom Memcached-Server gelöscht.
Syntax
Die grundlegende Syntax von Memcached delete Befehl ist wie unten gezeigt -
delete key
Wenn der Schlüssel erfolgreich gelöscht wurde, wird DELETED zurückgegeben. Wenn der Schlüssel nicht gefunden wird, gibt er NOT_FOUND zurück, andernfalls wird ERROR zurückgegeben.
Beispiel
In diesem Beispiel verwenden wir tutorialspoint als Schlüssel und speichern darin zwischengespeicherte Speicher mit einer Ablaufzeit von 900 Sekunden. Danach wird der gespeicherte Schlüssel gelöscht.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
delete tutorialspoint
DELETED
get tutorialspoint
END
delete tutorialspoint
NOT_FOUND
Daten mit Java-Anwendung löschen
Um Daten von einem Memcached-Server zu löschen, müssen Sie Memcached verwenden delete Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// delete value from cache
System.out.println("Delete from Cache:"+mcc.delete("tutorialspoint").isDone());
// check whether value exists or not
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
set status:true
Get from Cache:memcached
Delete from Cache:true
Get from Cache:null
Memcached incr und decrBefehle werden verwendet, um den numerischen Wert eines vorhandenen Schlüssels zu erhöhen oder zu verringern. Wird der Schlüssel nicht gefunden, wird er zurückgegebenNOT_FOUND. Wenn der Schlüssel nicht numerisch ist, wird er zurückgegebenCLIENT_ERROR cannot increment or decrement non-numeric value. Andernfalls,ERROR ist zurück gekommen.
Syntax - Inkr
Die grundlegende Syntax von Memcached incr Befehl ist wie unten gezeigt -
incr key increment_value
Beispiel
In diesem Beispiel verwenden wir Besucher als Schlüssel und setzen zunächst 10 ein. Danach erhöhen wir die Besucher um 5.
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
incr visitors 5
15
get visitors
VALUE visitors 0 2
15
END
Syntax - decr
Die grundlegende Syntax von Memcached decr Befehl ist wie unten gezeigt
decr key decrement_value
Beispiel
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
decr visitors 5
5
get visitors
VALUE visitors 0 1
5
END
Incr / Decr mit Java-Anwendung
Um Daten auf einem Memcached-Server zu erhöhen oder zu verringern, müssen Sie Memcached verwenden incr or decr Methoden jeweils.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("count", 900, "5").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("count"));
// now increase the stored value
System.out.println("Increment value:"+mcc.incr("count", 2));
// now decrease the stored value
System.out.println("Decrement value:"+mcc.decr("count", 1));
// now get the final stored value
System.out.println("Get from Cache:"+mcc.get("count"));
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Memcached stats Der Befehl wird verwendet, um Serverstatistiken wie PID, Version, Verbindungen usw. zurückzugeben.
Syntax
Die grundlegende Syntax von Memcached stats Befehl ist wie unten gezeigt -
stats
Beispiel
stats
STAT pid 1162
STAT uptime 5022
STAT time 1415208270
STAT version 1.4.14
STAT libevent 2.0.19-stable
STAT pointer_size 64
STAT rusage_user 0.096006
STAT rusage_system 0.152009
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 6
STAT cmd_set 4
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 4
STAT get_misses 2
STAT delete_misses 1
STAT delete_hits 1
STAT incr_misses 2
STAT incr_hits 1
STAT decr_misses 0
STAT decr_hits 1
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 262
STAT bytes_written 313
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 1
STAT evicted_unfetched 0
STAT bytes 142
STAT curr_items 2
STAT total_items 6
STAT evictions 0
STAT reclaimed 1
END
Statistiken mit Java-Anwendung
Um Statistiken von einem Memcached-Server abzurufen, müssen Sie Memcached verwenden stats Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful");
System.out.println("Stats:"+mcc.stats);
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successful
Stats:[/127.0.0.1:11211:[delete_hits:0, bytes:71, total_items:4,
rusage_system:0.220013, touch_misses:0, cmd_touch:0, listen_disabled_num:0,
auth_errors:0, evictions:0, version:1.4.14, pointer_size:64, time:1417279366,
incr_hits:1, threads:4, expired_unfetched:0, limit_maxbytes:67108864,
hash_is_expanding:0, bytes_read:170, curr_connections:8, get_misses:1,
reclaimed:0, bytes_written:225, hash_power_level:16, connection_structures:9,
cas_hits:0, delete_misses:0, total_connections:11, rusage_user:0.356022,
cmd_flush:0, libevent:2.0.19-stable, uptime:12015, reserved_fds:20,
touch_hits:0, cas_badval:0, pid:1138, get_hits:2, curr_items:1, cas_misses:0,
accepting_conns:1, evicted_unfetched:0, cmd_get:3, cmd_set:2, auth_cmds:0,
incr_misses:1, hash_bytes:524288, decr_misses:1, decr_hits:1, conn_yields:0]]
Memcached stats items Der Befehl wird verwendet, um Elementstatistiken wie Anzahl, Alter, Räumung usw. abzurufen, die nach der Platten-ID organisiert sind.
Syntax
Die grundlegende Syntax von Memcached stats items Befehl ist wie unten gezeigt -
stats items
Beispiel
stats items
STAT items:1:number 1
STAT items:1:age 7
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
END
Memcached stats slabs Befehl zeigt Plattenstatistiken wie Größe, Speichernutzung, Befehle, Anzahl usw. an, die nach Platten-ID organisiert sind.
Syntax
Die grundlegende Syntax von Memcached stats slabs Befehl ist wie unten gezeigt -
stats slabs
Beispiel
stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 1
STAT 1:free_chunks 10921
STAT 1:free_chunks_end 0
STAT 1:mem_requested 71
STAT 1:get_hits 0
STAT 1:cmd_set 1
STAT 1:delete_hits 0
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT 1:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048512
END
Memcached stats sizesDer Befehl enthält Informationen zu Größe und Anzahl der Elemente jeder Größe im Cache. Die Informationen werden in zwei Spalten zurückgegeben. Die erste Spalte gibt die Größe des Elements an (auf die nächste 32-Byte-Grenze aufgerundet), und die zweite Spalte gibt die Anzahl der Elemente dieser Größe im Cache an.
Syntax
Die grundlegende Syntax von Memcached stats sizes Befehl ist wie unten gezeigt -
stats sizes
Beispiel
stats sizes
STAT 96 1
END
Die Artikelgrößenstatistik ist nur nützlich, um die Größe der Objekte zu bestimmen, die Sie speichern. Da die tatsächliche Speicherzuordnung nur in Bezug auf die Blockgröße und Seitengröße relevant ist, sind die Informationen nur während einer sorgfältigen Debugging- oder Diagnosesitzung nützlich.
Memcached flush_allMit dem Befehl werden alle Daten (Schlüssel-Wert-Paare) vom Memcached-Server gelöscht. Es akzeptiert einen optionalen Parameter namenstime Hiermit wird eine Zeit festgelegt, nach der die zwischengespeicherten Daten gelöscht werden sollen.
Syntax
Die grundlegende Syntax von Memcached flush_all Befehl ist wie unten gezeigt -
flush_all [time] [noreply]
Der obige Befehl gibt immer OK zurück.
Beispiel
Im folgenden Beispiel speichern wir einige Daten auf dem Memcached-Server und löschen dann alle Daten.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
flush_all
OK
get tutorialspoint
END
Daten mit Java-Anwendung löschen
Um Daten von einem Memcached-Server zu löschen, müssen Sie Memcached verwenden flush Methode.
Beispiel
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new
InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessfully");
System.out.println("set status:"+mcc.set("count", 900, "5").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("count"));
// now increase the stored value
System.out.println("Increment value:"+mcc.incr("count", 2));
// now decrease the stored value
System.out.println("Decrement value:"+mcc.decr("count", 1));
// now get the final stored value
System.out.println("Get from Cache:"+mcc.get("count"));
// now clear all this data
System.out.println("Clear data:"+mcc.flush().isDone());
}
}
Ausgabe
Beim Kompilieren und Ausführen des Programms wird die folgende Ausgabe angezeigt:
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Clear data:true