Memcached - Guida rapida
Memcached è un sistema di memorizzazione nella cache distribuita, ad alte prestazioni e open source, progettato per accelerare le applicazioni web dinamiche riducendo il carico del database. È un dizionario di valori-chiave di stringhe, oggetti e così via archiviati nella memoria, risultante da chiamate di database, chiamate API o rendering di pagine.
Memcached è stato sviluppato da Brad Fitzpatrick per LiveJournal nel 2003. Tuttavia, ora è utilizzato da Netlog, Facebook, Flickr, Wikipedia, Twitter e YouTube, tra gli altri.
Le caratteristiche principali di Memcached sono le seguenti:
È open source.
Il server Memcached è una grande tabella hash.
Riduce notevolmente il carico del database
È perfettamente efficiente per i siti Web con un carico di database elevato.
È distribuito con licenza Berkeley Software Distribution (BSD).
È un'applicazione client-server su TCP o UDP.
Memcached non è -
un archivio dati persistente
un database
application-specific
una grande cache di oggetti
tollerante ai guasti o altamente disponibile
Installazione di Memcached su Ubuntu
Per installare Memcached su Ubuntu, vai al terminale e digita i seguenti comandi:
$sudo apt-get update $sudo apt-get install memcached
Conferma dell'installazione di Memcached
Per confermare se Memcached è installato o meno, è necessario eseguire il comando indicato di seguito. Questo comando mostra che Memcached è in esecuzione sulla porta predefinita11211.
$ps aux | grep memcached
Per eseguire Memcached server su una porta diversa, eseguire il comando indicato di seguito. Questo comando avvia il server sulla porta TCP 11111 e ascolta sulla porta UDP 11111 come processo daemon.
$memcached -p 11111 -U 11111 -u user -d
È possibile eseguire più istanze del server Memcached tramite un'unica installazione.
Configurazione dell'ambiente Java Memcached
Per usare Memcached nel tuo programma Java, devi scaricare spymemcached-2.10.3.jar e imposta questo vaso nel classpath.
Per connettersi a un server Memcached, è necessario utilizzare il comando telnet sui nomi HOST e PORT.
Sintassi
La sintassi di base del comando telnet Memcached è come mostrato di seguito:
$telnet HOST PORT
Qui, HOST e PORT sono rispettivamente l'IP della macchina e il numero di porta su cui è in esecuzione il server Memcached.
Esempio
L'esempio seguente mostra come connettersi a un server Memcached ed eseguire un semplice comando set e get. Supponiamo che il server Memcached sia in esecuzione sull'host 127.0.0.1 e sulla porta 11211.
$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
Connessione dall'applicazione Java
Per connettere il server Memcached dal tuo programma java, devi aggiungere il jar Memcached nel tuo classpath come mostrato nel capitolo precedente. Supponiamo che il server Memcached sia in esecuzione sull'host 127.0.0.1 e sulla porta 11211. -
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:memcached.
Il terminale potrebbe mostrare anche pochi messaggi informativi, che possono essere ignorati.
Memcached set comando viene utilizzato per impostare un nuovo valore su una chiave nuova o esistente.
Sintassi
La sintassi di base di Memcached set il comando è come mostrato di seguito -
set key flags exptime bytes [noreply]
value
Le parole chiave nella sintassi sono come descritte di seguito:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati da Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati in Memcached.
noreply (optional) - È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati sulla nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
ERROR indica una sintassi errata o un errore durante il salvataggio dei dati.
Esempio
Nell'esempio seguente, usiamo tutorialspoint come chiave e impostiamo il valore Memcached in esso con un tempo di scadenza di 900 secondi.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
Memcached
END
Imposta dati utilizzando l'applicazione Java
Per impostare una chiave nel server Memcached, è necessario utilizzare Memcached set metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached addcomando viene utilizzato per impostare un valore su una nuova chiave. Se la chiave esiste già, restituisce l'output NOT_STORED.
Sintassi
La sintassi di base di Memcached add il comando è come mostrato di seguito -
add key flags exptime bytes [noreply]
value
Le parole chiave nella sintassi sono come descritte di seguito:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati da Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati in Memcached.
noreply (optional) - È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati sulla nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
NOT_STORED indica che i dati non sono archiviati in Memcached.
Esempio
Nell'esempio seguente, usiamo "key" come chiave e aggiungiamo il valore Memcached con un tempo di scadenza di 900 secondi.
add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
Memcached
END
Uscita di errore
add key 0 900 5
redis
NOT_STORED
Aggiungi dati utilizzando l'applicazione Java
Per aggiungere dati in un server Memcached, è necessario utilizzare Memcached add metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successful
add status:false
add status:true
Get from Cache tp:redis
Memcached replacecomando viene utilizzato per sostituire il valore di una chiave esistente. Se la chiave non esiste, restituisce l'output NOT_STORED.
Sintassi
La sintassi di base di Memcached replace il comando è come mostrato di seguito -
replace key flags exptime bytes [noreply]
value
Le parole chiave nella sintassi sono come descritte di seguito:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati da Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati nella Memcached.
noreply (optional) - È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati sulla nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
NOT_STORED indica che i dati non sono archiviati in Memcached.
Esempio
Nell'esempio seguente, utilizziamo "key" come chiave e memorizziamo memcached in essa con un tempo di scadenza di 900 secondi. Successivamente, la stessa chiave viene sostituita con il valore "redis".
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
Sostituisci i dati utilizzando l'applicazione Java
Per sostituire i dati in un server Memcached, è necessario utilizzare Memcached replace metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:memcached
Replace cache:true
Get from Cache:redis
Memcached appendcomando viene utilizzato per aggiungere alcuni dati in una chiave esistente. I dati vengono memorizzati dopo i dati esistenti della chiave.
Sintassi
La sintassi di base di Memcached append il comando è come mostrato di seguito -
append key flags exptime bytes [noreply]
value
Le parole chiave nella sintassi sono le seguenti:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati da Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati in Memcached.
noreply (optional) - È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati sulla nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
NOT_STORED indica che la chiave non esiste nel server Memcached.
CLIENT_ERROR indica un errore.
Esempio
Nell'esempio seguente, proviamo ad aggiungere alcuni dati in una chiave che non esiste. Quindi, Memcached ritornaNOT_STORED. Successivamente, impostiamo una chiave e vi accodiamo i dati.
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
Aggiungi dati utilizzando l'applicazione Java
Per aggiungere dati in un server Memcached, è necessario utilizzare Memcached append metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successful
set status:true
Get from Cache:memcached
Append to cache:true
Get from Cache:memcachedredis
Memcached prependcomando viene utilizzato per aggiungere alcuni dati in una chiave esistente. I dati vengono memorizzati prima dei dati esistenti della chiave.
Sintassi
La sintassi di base di Memcached prepend il comando è come mostrato di seguito -
prepend key flags exptime bytes [noreply]
value
Le parole chiave nella sintassi sono le seguenti:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati in Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati in Memcached.
noreply (optional) −È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati sulla nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
NOT_STORED indica che la chiave non esiste nel server Memcached.
CLIENT_ERROR indica un errore.
Esempio
Nell'esempio seguente, aggiungiamo alcuni dati in una chiave che non esiste. Quindi, Memcached ritornaNOT_STORED. Successivamente, impostiamo una chiave e anteponiamo i dati al suo interno.
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
Anteponi i dati utilizzando l'applicazione Java
Per anteporre i dati in un server Memcached, è necessario utilizzare Memcached prepend metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successful
set status:true
Get from Cache:memcached
Prepend to cache:true
Get from Cache:redismemcached
CAS sta per Check-And-Set o Compare-and-Swap. MemcachedCAScomando viene utilizzato per impostare i dati se non vengono aggiornati dall'ultimo recupero. Se la chiave non esiste in Memcached, ritornaNOT_FOUND.
Sintassi
La sintassi di base di Memcached CAS il comando è come mostrato di seguito -
set key flags exptime bytes unique_cas_key [noreply]
value
Le parole chiave nella sintassi sono le seguenti:
key - È il nome della chiave con cui i dati vengono memorizzati e recuperati da Memcached.
flags - È l'intero senza segno a 32 bit che il server memorizza con i dati forniti dall'utente e restituisce insieme ai dati quando l'elemento viene recuperato.
exptime- È il tempo di scadenza in secondi. 0 significa nessun ritardo. Se exptime è superiore a 30 giorni, Memcached lo utilizza come timestamp UNIX per la scadenza.
bytes- È il numero di byte nel blocco dati che deve essere memorizzato. Questa è la lunghezza dei dati che devono essere archiviati in Memcached.
unique_cas_key - È la chiave unica ottenuta dal comando gets.
noreply (optional) - È un parametro che informa il server di non inviare alcuna risposta.
value- Sono i dati che devono essere archiviati. I dati devono essere passati su una nuova riga dopo aver eseguito il comando con le opzioni precedenti.
Produzione
L'output del comando è come mostrato di seguito:
STORED
STORED indica il successo.
ERROR indica un errore durante il salvataggio dei dati o una sintassi errata.
EXISTS indica che qualcuno ha modificato i dati CAS dall'ultimo recupero.
NOT_FOUND indica che la chiave non esiste nel server Memcached.
Esempio
Per eseguire un comando CAS in Memcached, è necessario ottenere un token CAS dal comando Get di Memcached.
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 utilizzando l'applicazione Java
Per ottenere dati CAS da un server Memcached, è necessario utilizzare Memcached gets metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successful
set status:true
Cas token:3
Now set new data:OK
Get from Cache:redis
Memcached getcomando viene utilizzato per ottenere il valore memorizzato nella chiave. Se la chiave non esiste in Memcached, non restituisce nulla.
Sintassi
La sintassi di base di Memcached get il comando è come mostrato di seguito -
get key
Esempio
Nell'esempio seguente, utilizziamo tutorialspoint come chiave e memorizziamo memcached al suo interno con un tempo di scadenza di 900 secondi.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
Ottieni dati utilizzando l'applicazione Java
Per ottenere dati da un server Memcached, è necessario utilizzare Memcached get metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached getscomando viene utilizzato per ottenere il valore con il token CAS. Se la chiave non esiste in Memcached, non restituisce nulla.
Sintassi
La sintassi di base di Memcached gets il comando è come mostrato di seguito -
get key
Esempio
set tutorialspoint 0 900 9
memcached
STORED
gets tutorialspoint
VALUE tutorialspoint 0 9 1
memcached
END
In questo esempio, utilizziamo tutorialspoint come chiave e memorizziamo memcached al suo interno con un tempo di scadenza di 900 secondi.
Ottieni dati CAS utilizzando l'applicazione Java
Per ottenere dati CAS da un server Memcached, è necessario utilizzare Memcached gets metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:{CasValue 2/memcached}
Memcached delete viene utilizzato per eliminare una chiave esistente dal server Memcached.
Sintassi
La sintassi di base di Memcached delete il comando è come mostrato di seguito -
delete key [noreply]
Produzione
Il comando CAS può produrre uno dei seguenti risultati:
DELETED indica l'eliminazione riuscita.
ERROR indica un errore durante l'eliminazione dei dati o una sintassi errata.
NOT_FOUND indica che la chiave non esiste nel server Memcached.
Esempio
In questo esempio, utilizziamo tutorialspoint come chiave e memorizziamo memcached al suo interno con un tempo di scadenza di 900 secondi. Successivamente, elimina la chiave memorizzata.
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
Elimina i dati utilizzando l'applicazione Java
Per eliminare i dati da un server Memcached, è necessario utilizzare Memcached delete metodo.
Esempio
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());
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
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 viene utilizzato per eliminare una chiave esistente dal server Memcached.
Sintassi
La sintassi di base di Memcached delete il comando è come mostrato di seguito -
delete key
Se la chiave viene eliminata correttamente, restituisce DELETED. Se la chiave non viene trovata, restituisce NOT_FOUND, altrimenti restituisce ERROR.
Esempio
In questo esempio, utilizziamo tutorialspoint come chiave e memorizziamo memcached al suo interno con un tempo di scadenza di 900 secondi. Successivamente, elimina la chiave memorizzata.
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
Elimina i dati utilizzando l'applicazione Java
Per eliminare i dati da un server Memcached, è necessario utilizzare Memcached delete metodo.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successful
set status:true
Get from Cache:memcached
Delete from Cache:true
Get from Cache:null
Memcached incr e decri comandi vengono utilizzati per aumentare o diminuire il valore numerico di una chiave esistente. Se la chiave non viene trovata, ritornaNOT_FOUND. Se la chiave non è numerica, ritornaCLIENT_ERROR cannot increment or decrement non-numeric value. Altrimenti,ERROR viene restituito.
Sintassi - incr
La sintassi di base di Memcached incr il comando è come mostrato di seguito -
incr key increment_value
Esempio
In questo esempio, usiamo i visitatori come chiave e impostiamo 10 inizialmente in essa, quindi incrementiamo i visitatori di 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
Sintassi - decr
La sintassi di base di Memcached decr il comando è come mostrato di seguito
decr key decrement_value
Esempio
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 utilizzando l'applicazione Java
Per aumentare o diminuire i dati in un server Memcached, è necessario utilizzare Memcached incr or decr metodi rispettivamente.
Esempio
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"));
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Memcached stats comando viene utilizzato per restituire le statistiche del server come PID, versione, connessioni, ecc.
Sintassi
La sintassi di base di Memcached stats il comando è come mostrato di seguito -
stats
Esempio
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
Statistiche utilizzando l'applicazione Java
Per ottenere statistiche da un server Memcached, è necessario utilizzare Memcached stats metodo.
Esempio
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);
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
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 Il comando viene utilizzato per ottenere statistiche sugli elementi come conteggio, età, sfratto, ecc. organizzate per ID slabs.
Sintassi
La sintassi di base di Memcached stats items il comando è come mostrato di seguito -
stats items
Esempio
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 comando visualizza le statistiche delle lastre come dimensioni, utilizzo della memoria, comandi, conteggio ecc. organizzate per ID lastre.
Sintassi
La sintassi di base di Memcached stats slabs il comando è come mostrato di seguito -
stats slabs
Esempio
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 sizesIl comando fornisce informazioni sulle dimensioni e sul numero di elementi di ciascuna dimensione all'interno della cache. Le informazioni vengono restituite in due colonne. La prima colonna è la dimensione dell'elemento (arrotondata al limite di 32 byte più vicino) e la seconda colonna è il conteggio del numero di elementi di quella dimensione all'interno della cache.
Sintassi
La sintassi di base di Memcached stats sizes il comando è come mostrato di seguito -
stats sizes
Esempio
stats sizes
STAT 96 1
END
Le statistiche sulle dimensioni degli articoli sono utili solo per determinare le dimensioni degli oggetti che si stanno archiviando. Poiché l'effettiva allocazione della memoria è rilevante solo in termini di dimensione del blocco e dimensione della pagina, le informazioni sono utili solo durante un'attenta sessione di debug o diagnostica.
Memcached flush_allviene utilizzato per eliminare tutti i dati (coppie chiave-valore) dal server Memcached. Accetta un parametro opzionale chiamatotime che imposta un tempo dopo il quale i dati Memcached devono essere cancellati.
Sintassi
La sintassi di base di Memcached flush_all il comando è come mostrato di seguito -
flush_all [time] [noreply]
Il comando precedente restituisce sempre OK.
Esempio
Nell'esempio seguente, memorizziamo alcuni dati nel server Memcached e quindi cancelliamo tutti i dati.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
flush_all
OK
get tutorialspoint
END
Cancella dati utilizzando l'applicazione Java
Per cancellare i dati da un server Memcached, è necessario utilizzare Memcached flush metodo.
Esempio
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());
}
}
Produzione
Durante la compilazione e l'esecuzione del programma, puoi vedere il seguente output:
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Clear data:true