Memcached - Szybki przewodnik

Memcached to wysokowydajny, rozproszony system buforowania pamięci typu open source, mający na celu przyspieszenie dynamicznych aplikacji internetowych poprzez zmniejszenie obciążenia bazy danych. Jest to słownik klucz-wartość zawierający ciągi, obiekty itp., Przechowywany w pamięci, będący wynikiem wywołań bazy danych, wywołań API lub renderowania strony.

Memcached został opracowany przez Brada Fitzpatricka dla LiveJournal w 2003 roku. Obecnie jest jednak używany między innymi przez Netlog, Facebook, Flickr, Wikipedia, Twitter i YouTube.

Kluczowe cechy Memcached są następujące -

  • To jest open source.

  • Serwer Memcached to duża tablica skrótów.

  • Znacząco zmniejsza obciążenie bazy danych

  • Doskonale sprawdza się w przypadku witryn o dużym obciążeniu bazy danych.

  • Jest rozpowszechniany na licencji Berkeley Software Distribution (BSD).

  • Jest to aplikacja klient-serwer przez TCP lub UDP.

Memcached nie jest -

  • trwały magazyn danych

  • bazę danych

  • application-specific

  • duża pamięć podręczna obiektów

  • odporny na uszkodzenia lub wysoce dostępny

Instalowanie Memcached na Ubuntu

Aby zainstalować Memcached na Ubuntu, przejdź do terminala i wpisz następujące polecenia -

$sudo apt-get update
$sudo apt-get install memcached

Potwierdzanie instalacji Memcached

Aby potwierdzić, czy Memcached jest zainstalowany, czy nie, musisz uruchomić polecenie podane poniżej. To polecenie pokazuje, że Memcached działa na domyślnym porcie11211.

$ps aux | grep memcached

Aby uruchomić serwer Memcached na innym porcie, wykonaj polecenie podane poniżej. To polecenie uruchamia serwer na porcie TCP 11111 i nasłuchuje na porcie UDP 11111 jako proces demona.

$memcached -p 11111 -U 11111 -u user -d

Możesz uruchomić wiele instancji serwera Memcached w ramach jednej instalacji.

Konfiguracja środowiska Java Memcached

Aby używać Memcached w swoim programie Java, musisz pobrać spymemcached-2.10.3.jar i ustaw ten słoik w ścieżce klas.

Aby połączyć się z serwerem Memcached, musisz użyć polecenia telnet na nazwach HOST i PORT.

Składnia

Podstawowa składnia polecenia telnet Memcached jest pokazana poniżej -

$telnet HOST PORT

Tutaj, HOST i PORT to odpowiednio IP komputera i numer portu, na którym działa serwer Memcached.

Przykład

Poniższy przykład pokazuje, jak połączyć się z serwerem Memcached i wykonać proste polecenie set i get. Załóżmy, że serwer Memcached działa na hoście 127.0.0.1 i porcie 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

Połączenie z aplikacji Java

Aby połączyć serwer Memcached z programu java, musisz dodać plik jar Memcached do ścieżki klas, jak pokazano w poprzednim rozdziale. Załóżmy, że serwer Memcached działa na hoście 127.0.0.1 i porcie 11211. -

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:memcached.

Terminal może również wyświetlać kilka komunikatów informacyjnych, które można zignorować.

Memcached set polecenie służy do ustawiania nowej wartości dla nowego lub istniejącego klucza.

Składnia

Podstawowa składnia Memcached set polecenie jest jak pokazano poniżej -

set key flags exptime bytes [noreply] 
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i pobierane z Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime jest dłuższy niż 30 dni, Memcached używa go jako sygnatury czasowej UNIX do wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • noreply (optional) - Jest to parametr, który informuje serwer, aby nie wysyłał żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • ERROR wskazuje nieprawidłową składnię lub błąd podczas zapisywania danych.

Przykład

W poniższym przykładzie używamy tutorialspoint jako klucza i ustawiamy w nim wartość Memcached z czasem wygaśnięcia 900 sekund.

set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
Memcached
END

Ustaw dane za pomocą aplikacji Java

Aby ustawić klucz na serwerze Memcached, musisz użyć Memcached set metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:memcached

Memcached addpolecenie służy do ustawiania wartości dla nowego klucza. Jeśli klucz już istnieje, to daje wynik NIEZAPISANY.

Składnia

Podstawowa składnia Memcached add polecenie jest jak pokazano poniżej -

add key flags exptime bytes [noreply]
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i pobierane z Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime przekracza 30 dni, Memcached używa go jako uniksowego znacznika czasu wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • noreply (optional) - Jest to parametr, który informuje serwer, aby nie wysyłał żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • NOT_STORED wskazuje, że dane nie są przechowywane w Memcached.

Przykład

W poniższym przykładzie używamy „klucza” jako klucza i dodajemy do niego wartość Memcached z czasem wygaśnięcia 900 sekund.

add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
Memcached
END

Wyjście awarii

add key 0 900 5
redis
NOT_STORED

Dodaj dane za pomocą aplikacji Java

Aby dodać dane na serwerze Memcached, musisz użyć Memcached add metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successful
add status:false
add status:true
Get from Cache tp:redis

Memcached replacepolecenie służy do zastąpienia wartości istniejącego klucza. Jeśli klucz nie istnieje, to daje wynik NOT_STORED.

Składnia

Podstawowa składnia Memcached replace polecenie jest jak pokazano poniżej -

replace key flags exptime bytes [noreply]
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i pobierane z Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime przekracza 30 dni, Memcached używa go jako uniksowego znacznika czasu wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • noreply (optional) - Jest to parametr, który informuje serwer, aby nie wysyłał żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • NOT_STORED wskazuje, że dane nie są przechowywane w Memcached.

Przykład

W poniższym przykładzie używamy „key” jako klucza i przechowujemy w nim memcached z czasem wygaśnięcia 900 sekund. Następnie ten sam klucz zostanie zastąpiony wartością „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

Zastąp dane za pomocą aplikacji Java

Aby zamienić dane na serwerze Memcached, musisz użyć Memcached replace metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:memcached
Replace cache:true
Get from Cache:redis

Memcached appendpolecenie służy do dodawania danych do istniejącego klucza. Dane są przechowywane po istniejących danych klucza.

Składnia

Podstawowa składnia Memcached append polecenie jest jak pokazano poniżej -

append key flags exptime bytes [noreply]
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i pobierane z Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime przekracza 30 dni, Memcached używa go jako uniksowego znacznika czasu wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • noreply (optional) - Jest to parametr informujący, że serwer nie wysyła żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • NOT_STORED wskazuje, że klucz nie istnieje na serwerze Memcached.

  • CLIENT_ERROR wskazuje błąd.

Przykład

W poniższym przykładzie próbujemy dodać dane w kluczu, który nie istnieje. Dlatego Memcached powracaNOT_STORED. Następnie ustawiamy jeden klucz i dodajemy do niego dane.

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

Dołącz dane za pomocą aplikacji Java

Aby dołączyć dane na serwerze Memcached, musisz użyć Memcached append metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successful
set status:true
Get from Cache:memcached
Append to cache:true
Get from Cache:memcachedredis

Memcached prependpolecenie służy do dodawania danych do istniejącego klucza. Dane są przechowywane przed istniejącymi danymi klucza.

Składnia

Podstawowa składnia Memcached prepend polecenie jest jak pokazano poniżej -

prepend key flags exptime bytes [noreply]
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i odczytywane w Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime przekracza 30 dni, Memcached używa go jako uniksowego znacznika czasu wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • noreply (optional) −Jest to parametr, który informuje, że serwer nie wysyła żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • NOT_STORED wskazuje, że klucz nie istnieje na serwerze Memcached.

  • CLIENT_ERROR wskazuje błąd.

Przykład

W poniższym przykładzie dodajemy dane w kluczu, który nie istnieje. Dlatego Memcached powracaNOT_STORED. Następnie ustawiamy jeden klucz i dołączamy do niego dane.

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

Dołącz dane za pomocą aplikacji Java

Aby dołączyć dane na serwerze Memcached, musisz użyć Memcached prepend metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successful
set status:true
Get from Cache:memcached
Prepend to cache:true
Get from Cache:redismemcached

CAS oznacza Check-And-Set lub Compare-And-Swap. MemcachedCASpolecenie służy do ustawiania danych, jeśli nie zostały zaktualizowane od czasu ostatniego pobrania. Jeśli klucz nie istnieje w Memcached, to zwracaNOT_FOUND.

Składnia

Podstawowa składnia Memcached CAS polecenie jest jak pokazano poniżej -

set key flags exptime bytes unique_cas_key [noreply]
value

Słowa kluczowe w składni są takie, jak opisano poniżej -

  • key - Jest to nazwa klucza, za pomocą którego dane są przechowywane i pobierane z Memcached.

  • flags - Jest to 32-bitowa liczba całkowita bez znaku, którą serwer przechowuje z danymi dostarczonymi przez użytkownika i zwraca wraz z danymi po pobraniu elementu.

  • exptime- Jest to czas wygaśnięcia w sekundach. 0 oznacza brak opóźnienia. Jeśli exptime przekracza 30 dni, Memcached używa go jako uniksowego znacznika czasu wygaśnięcia.

  • bytes- Jest to liczba bajtów w bloku danych, które mają być zapisane. To jest długość danych, które muszą być przechowywane w Memcached.

  • unique_cas_key - Jest to unikalny klucz, który otrzymuje polecenie.

  • noreply (optional) - Jest to parametr, który informuje serwer, aby nie wysyłał żadnej odpowiedzi.

  • value- To dane, które muszą być przechowywane. Dane należy przekazać w nowej linii po wykonaniu polecenia z powyższymi opcjami.

Wynik

Dane wyjściowe polecenia są pokazane poniżej -

STORED
  • STORED wskazuje na sukces.

  • ERROR wskazuje błąd podczas zapisywania danych lub nieprawidłową składnię.

  • EXISTS wskazuje, że ktoś zmodyfikował dane CAS od ostatniego pobrania.

  • NOT_FOUND wskazuje, że klucz nie istnieje na serwerze Memcached.

Przykład

Aby wykonać polecenie CAS w Memcached, musisz pobrać token CAS z polecenia Memcached gets.

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 przy użyciu aplikacji Java

Aby pobrać dane CAS z serwera Memcached, musisz użyć Memcached gets metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successful
set status:true
Cas token:3
Now set new data:OK
Get from Cache:redis

Memcached getpolecenie jest używane do pobrania wartości przechowywanej w kluczu. Jeśli klucz nie istnieje w Memcached, nic nie zwraca.

Składnia

Podstawowa składnia Memcached get polecenie jest jak pokazano poniżej -

get key

Przykład

W poniższym przykładzie używamy tutorialspoint jako klucza i przechowujemy w nim memcached z czasem wygaśnięcia 900 sekund.

set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END

Uzyskaj dane za pomocą aplikacji Java

Aby pobrać dane z serwera Memcached, musisz użyć Memcached get metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:memcached

Memcached getspolecenie służy do pobrania wartości za pomocą tokenu CAS. Jeśli klucz nie istnieje w Memcached, nic nie zwraca.

Składnia

Podstawowa składnia Memcached gets polecenie jest jak pokazano poniżej -

get key

Przykład

set tutorialspoint 0 900 9
memcached
STORED
gets tutorialspoint
VALUE tutorialspoint 0 9 1
memcached
END

W tym przykładzie używamy tutorialspoint jako klucza i przechowujemy w nim memcached z czasem wygaśnięcia 900 sekund.

Uzyskaj dane CAS za pomocą aplikacji Java

Aby pobrać dane CAS z serwera Memcached, musisz użyć Memcached gets metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:{CasValue 2/memcached}

Memcached delete polecenie służy do usuwania istniejącego klucza z serwera Memcached.

Składnia

Podstawowa składnia Memcached delete polecenie jest jak pokazano poniżej -

delete key [noreply]

Wynik

Polecenie CAS może dać jeden z następujących wyników -

  • DELETED wskazuje na pomyślne usunięcie.

  • ERROR wskazuje błąd podczas usuwania danych lub nieprawidłową składnię.

  • NOT_FOUND wskazuje, że klucz nie istnieje na serwerze Memcached.

Przykład

W tym przykładzie używamy tutorialspoint jako klucza i przechowujemy w nim memcached z czasem wygaśnięcia 900 sekund. Następnie usuwa przechowywany klucz.

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

Usuń dane za pomocą aplikacji Java

Aby usunąć dane z serwera Memcached, musisz użyć Memcached delete metoda.

Przykład

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());
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

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 polecenie służy do usuwania istniejącego klucza z serwera Memcached.

Składnia

Podstawowa składnia Memcached delete polecenie jest jak pokazano poniżej -

delete key

Jeśli klucz zostanie pomyślnie usunięty, zwraca DELETED. Jeśli klucz nie zostanie znaleziony, zwraca NOT_FOUND, w przeciwnym razie zwraca ERROR.

Przykład

W tym przykładzie używamy tutorialspoint jako klucza i przechowujemy w nim memcached z czasem wygaśnięcia 900 sekund. Następnie usuwa przechowywany klucz.

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

Usuń dane za pomocą aplikacji Java

Aby usunąć dane z serwera Memcached, musisz użyć Memcached delete metoda.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successful
set status:true
Get from Cache:memcached
Delete from Cache:true
Get from Cache:null

Memcached incr i decrPolecenia służą do zwiększania lub zmniejszania wartości numerycznej istniejącego klucza. Jeśli klucz nie zostanie znaleziony, zwracaNOT_FOUND. Jeśli klucz nie jest numeryczny, zwracaCLIENT_ERROR cannot increment or decrement non-numeric value. Inaczej,ERROR jest zwracany.

Składnia - incr

Podstawowa składnia Memcached incr polecenie jest jak pokazano poniżej -

incr key increment_value

Przykład

W tym przykładzie używamy odwiedzających jako klucza i początkowo ustawiamy w nim 10, a następnie zwiększamy liczbę odwiedzających o 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

Składnia - decr

Podstawowa składnia Memcached decr polecenie jest pokazane poniżej

decr key decrement_value

Przykład

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 przy użyciu aplikacji Java

Aby zwiększyć lub zmniejszyć dane na serwerze Memcached, musisz użyć Memcached incr or decr metody odpowiednio.

Przykład

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"));
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6

Memcached stats polecenie służy do zwracania statystyk serwera, takich jak PID, wersja, połączenia itp.

Składnia

Podstawowa składnia Memcached stats polecenie jest jak pokazano poniżej -

stats

Przykład

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

Statystyki przy użyciu aplikacji Java

Aby uzyskać statystyki z serwera Memcached, musisz użyć Memcached stats metoda.

Przykład

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);
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

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 Polecenie służy do uzyskiwania statystyk przedmiotów, takich jak liczba, wiek, eksmisja itp., uporządkowanych według identyfikatora płyty.

Składnia

Podstawowa składnia Memcached stats items polecenie jest jak pokazano poniżej -

stats items

Przykład

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 polecenie wyświetla statystyki płyt, takie jak rozmiar, użycie pamięci, polecenia, liczba itp. uporządkowane według identyfikatora płyty.

Składnia

Podstawowa składnia Memcached stats slabs polecenie jest jak pokazano poniżej -

stats slabs

Przykład

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 sizesPolecenie zawiera informacje o rozmiarach i liczbie elementów każdego rozmiaru w pamięci podręcznej. Informacje są zwracane w dwóch kolumnach. Pierwsza kolumna to rozmiar elementu (zaokrąglona w górę do najbliższej 32-bajtowej granicy), a druga to liczba elementów tego rozmiaru w pamięci podręcznej.

Składnia

Podstawowa składnia Memcached stats sizes polecenie jest jak pokazano poniżej -

stats sizes

Przykład

stats sizes
STAT 96 1
END

Statystyki rozmiaru pozycji są przydatne tylko do określenia rozmiarów przechowywanych obiektów. Ponieważ faktyczna alokacja pamięci jest istotna tylko pod względem rozmiaru porcji i rozmiaru strony, informacje te są przydatne tylko podczas starannego debugowania lub sesji diagnostycznej.

Memcached flush_allPolecenie służy do usuwania wszystkich danych (par klucz-wartość) z serwera Memcached. Akceptuje opcjonalny parametr o nazwietime który określa czas, po którym dane Memcached mają zostać wyczyszczone.

Składnia

Podstawowa składnia Memcached flush_all polecenie jest jak pokazano poniżej -

flush_all [time] [noreply]

Powyższe polecenie zawsze zwraca OK.

Przykład

W poniższym przykładzie przechowujemy część danych na serwerze Memcached, a następnie usuwamy wszystkie dane.

set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
flush_all
OK
get tutorialspoint
END

Wyczyść dane za pomocą aplikacji Java

Aby usunąć dane z serwera Memcached, musisz użyć Memcached flush metoda.

Przykład

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());
   }
}

Wynik

Podczas kompilowania i wykonywania programu zobaczysz następujące dane wyjściowe -

Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Clear data:true