Memcached-빠른 가이드

Memcached는 데이터베이스 부하를 줄여 동적 웹 애플리케이션의 속도를 높이기위한 오픈 소스 고성능 분산 메모리 캐싱 시스템입니다. 데이터베이스 호출, API 호출 또는 페이지 렌더링으로 인해 메모리에 저장되는 문자열, 객체 등의 키-값 사전입니다.

Memcached는 2003 년에 LiveJournal을 위해 Brad Fitzpatrick에 의해 개발되었습니다. 그러나 현재 Netlog, Facebook, Flickr, Wikipedia, Twitter 및 YouTube에서 사용되고 있습니다.

Memcached의 주요 기능은 다음과 같습니다.

  • 오픈 소스입니다.

  • Memcached 서버는 큰 해시 테이블입니다.

  • 데이터베이스 부하를 크게 줄입니다.

  • 데이터베이스로드가 높은 웹 사이트에 완벽하게 효율적입니다.

  • BSD (Berkeley Software Distribution) 라이센스에 따라 배포됩니다.

  • TCP 또는 UDP를 통한 클라이언트-서버 응용 프로그램입니다.

Memcached는-

  • 영구 데이터 저장소

  • 데이터베이스

  • application-specific

  • 큰 개체 캐시

  • 내결함성 또는 고 가용성

Ubuntu에 Memcached 설치

Ubuntu에 Memcached를 설치하려면 터미널로 이동하여 다음 명령을 입력하십시오.

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

Memcached 설치 확인

Memcached가 설치되어 있는지 확인하려면 아래 명령을 실행해야합니다. 이 명령어는 Memcached가 기본 포트에서 실행 중임을 보여줍니다.11211.

$ps aux | grep memcached

다른 포트에서 Memcached 서버를 실행하려면 아래 명령을 실행하십시오. 이 명령은 TCP 포트 11111에서 서버를 시작하고 UDP 포트 11111에서 데몬 프로세스로 수신합니다.

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

단일 설치를 통해 Memcached 서버의 여러 인스턴스를 실행할 수 있습니다.

Memcached Java 환경 설정

Java 프로그램에서 Memcached를 사용하려면 다음을 다운로드해야합니다. spymemcached-2.10.3.jar 이 항아리를 클래스 경로에 설정하십시오.

Memcached 서버에 연결하려면 HOST 및 PORT 이름에 telnet 명령을 사용해야합니다.

통사론

Memcached telnet 명령의 기본 구문은 다음과 같습니다.

$telnet HOST PORT

여기, HOSTPORT Memcached 서버가 실행중인 머신 IP 및 포트 번호입니다.

다음 예제는 Memcached 서버에 연결하고 간단한 set 및 get 명령을 실행하는 방법을 보여줍니다. Memcached 서버가 호스트 127.0.0.1 및 포트 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

자바 애플리케이션에서 연결

Java 프로그램에서 Memcached 서버를 연결하려면 이전 장에 표시된대로 Memcached jar를 클래스 경로에 추가해야합니다. Memcached 서버가 호스트 127.0.0.1 및 포트 11211에서 실행되고 있다고 가정합니다. −

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

터미널에는 정보 메시지가 거의 표시되지 않을 수 있으며 무시할 수 있습니다.

Memcached set 명령은 새 값을 새 키 또는 기존 키로 설정하는 데 사용됩니다.

통사론

Memcached의 기본 구문 set 명령은 다음과 같습니다-

set key flags exptime bytes [noreply] 
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일 이상이면 Memcached는이를 UNIX 타임 스탬프로 만료 시간으로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • noreply (optional) -답장을 보내지 않도록 서버에 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션을 사용하여 명령을 실행 한 후 데이터를 새 줄에 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • ERROR 데이터를 저장하는 동안 잘못된 구문 또는 오류를 나타냅니다.

다음 예에서는 tutorialspoint를 키로 사용하고 만료 시간이 900 초인 Memcached 값을 설정합니다.

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

Java 애플리케이션을 사용하여 데이터 설정

Memcached 서버에서 키를 설정하려면 Memcached를 사용해야합니다. set 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached add명령은 값을 새 키로 설정하는 데 사용됩니다. 키가 이미 있으면 출력 NOT_STORED를 제공합니다.

통사론

Memcached의 기본 구문 add 명령은 다음과 같습니다-

add key flags exptime bytes [noreply]
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일을 초과하는 경우 Memcached는이를 만료를위한 UNIX 타임 스탬프로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • noreply (optional) − 응답을 보내지 않도록 서버에 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션을 사용하여 명령을 실행 한 후 데이터를 새 줄에 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • NOT_STORED 데이터가 Memcached에 저장되지 않았 음을 나타냅니다.

다음 예에서는 'key'를 키로 사용하고 만료 시간이 900 초인 Memcached 값을 여기에 추가합니다.

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

실패 출력

add key 0 900 5
redis
NOT_STORED

Java 애플리케이션을 사용하여 데이터 추가

Memcached 서버에 데이터를 추가하려면 Memcached를 사용해야합니다. add 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached replace명령은 기존 키의 값을 대체하는 데 사용됩니다. 키가 없으면 출력 NOT_STORED를 제공합니다.

통사론

Memcached의 기본 구문 replace 명령은 다음과 같습니다-

replace key flags exptime bytes [noreply]
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일을 초과하는 경우 Memcached는이를 만료를위한 UNIX 타임 스탬프로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • noreply (optional) − 응답을 보내지 않도록 서버에 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션을 사용하여 명령을 실행 한 후 데이터를 새 줄에 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • NOT_STORED 데이터가 Memcached에 저장되지 않았 음을 나타냅니다.

다음 예에서는 'key'를 키로 사용하고 만료 시간이 900 초인 memcached를 여기에 저장합니다. 그런 다음 동일한 키가 '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

Java 애플리케이션을 사용하여 데이터 교체

Memcached 서버의 데이터를 교체하려면 Memcached를 사용해야합니다. replace 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached append명령은 기존 키에 일부 데이터를 추가하는 데 사용됩니다. 데이터는 키의 기존 데이터 뒤에 저장됩니다.

통사론

Memcached의 기본 구문 append 명령은 다음과 같습니다-

append key flags exptime bytes [noreply]
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일을 초과하는 경우 Memcached는이를 만료를위한 UNIX 타임 스탬프로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • noreply (optional) − 서버에게 응답이 없음을 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션을 사용하여 명령을 실행 한 후 데이터를 새 줄에 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • NOT_STORED Memcached 서버에 키가 없음을 나타냅니다.

  • CLIENT_ERROR 오류를 나타냅니다.

다음 예에서는 존재하지 않는 키에 일부 데이터를 추가하려고합니다. 따라서 Memcached는NOT_STORED. 그런 다음 하나의 키를 설정하고 여기에 데이터를 추가합니다.

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

Java 애플리케이션을 사용하여 데이터 추가

Memcached 서버에 데이터를 추가하려면 Memcached를 사용해야합니다. append 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached prepend명령은 기존 키에 일부 데이터를 추가하는 데 사용됩니다. 데이터는 키의 기존 데이터보다 먼저 저장됩니다.

통사론

Memcached의 기본 구문 prepend 명령은 다음과 같습니다-

prepend key flags exptime bytes [noreply]
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일을 초과하는 경우 Memcached는이를 만료를위한 UNIX 타임 스탬프로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • noreply (optional) − 서버에 응답이 없음을 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션으로 명령을 실행 한 후 데이터를 새 줄로 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • NOT_STORED Memcached 서버에 키가 없음을 나타냅니다.

  • CLIENT_ERROR 오류를 나타냅니다.

다음 예에서는 존재하지 않는 키에 일부 데이터를 추가합니다. 따라서 Memcached는NOT_STORED. 그런 다음 하나의 키를 설정하고 여기에 데이터를 추가합니다.

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

Java 응용 프로그램을 사용하여 데이터 앞에 추가

Memcached 서버에 데이터를 추가하려면 Memcached를 사용해야합니다. prepend 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

CAS는 Check-And-Set 또는 Compare-And-Swap을 의미합니다. MemcachedCAS명령은 마지막 페치 이후 업데이트되지 않은 데이터를 설정하는 데 사용됩니다. Memcached에 키가 없으면 다음을 반환합니다.NOT_FOUND.

통사론

Memcached의 기본 구문 CAS 명령은 다음과 같습니다-

set key flags exptime bytes unique_cas_key [noreply]
value

구문의 키워드는 다음과 같습니다.

  • key − Memcached에서 데이터를 저장하고 검색하는 데 사용되는 키의 이름입니다.

  • flags − 서버가 사용자가 제공 한 데이터와 함께 저장하는 32 비트 부호없는 정수로, 아이템 검색시 데이터와 함께 반환됩니다.

  • exptime− 만료 시간 (초)입니다. 0은 지연이 없음을 의미합니다. exptime이 30 일을 초과하는 경우 Memcached는이를 만료를위한 UNIX 타임 스탬프로 사용합니다.

  • bytes− 저장해야하는 데이터 블록의 바이트 수입니다. Memcached에 저장해야하는 데이터의 길이입니다.

  • unique_cas_key − get 명령에서 얻은 고유 키입니다.

  • noreply (optional) − 응답을 보내지 않도록 서버에 알리는 파라미터입니다.

  • value− 저장해야하는 데이터입니다. 위의 옵션으로 명령을 실행 한 후 데이터를 새 줄로 전달해야합니다.

산출

명령의 출력은 다음과 같습니다.

STORED
  • STORED 성공을 나타냅니다.

  • ERROR 데이터 저장 중 오류 또는 잘못된 구문을 나타냅니다.

  • EXISTS 마지막으로 가져온 이후 누군가가 CAS 데이터를 수정했음을 나타냅니다.

  • NOT_FOUND Memcached 서버에 키가 없음을 나타냅니다.

Memcached에서 CAS 명령을 실행하려면 Memcached gets 명령에서 CAS 토큰을 가져와야합니다.

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

Java 애플리케이션을 사용하는 CAS

Memcached 서버에서 CAS 데이터를 가져 오려면 Memcached를 사용해야합니다. gets 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached get명령은 키에 저장된 값을 가져 오는 데 사용됩니다. Memcached에 키가 없으면 아무것도 반환하지 않습니다.

통사론

Memcached의 기본 구문 get 명령은 다음과 같습니다-

get key

다음 예에서는 tutorialspoint를 키로 사용하고 만료 시간이 900 초인 memcached를 여기에 저장합니다.

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

Java 애플리케이션을 사용하여 데이터 가져 오기

Memcached 서버에서 데이터를 가져 오려면 Memcached를 사용해야합니다. get 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached gets명령은 CAS 토큰으로 값을 가져 오는 데 사용됩니다. Memcached에 키가 없으면 아무것도 반환하지 않습니다.

통사론

Memcached의 기본 구문 gets 명령은 다음과 같습니다-

get key

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

이 예에서는 tutorialspoint를 키로 사용하고 900 초의 만료 시간으로 memcached를 저장합니다.

Java 애플리케이션을 사용하여 CAS 데이터 가져 오기

Memcached 서버에서 CAS 데이터를 가져 오려면 Memcached를 사용해야합니다. gets 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached delete 명령은 Memcached 서버에서 기존 키를 삭제하는 데 사용됩니다.

통사론

Memcached의 기본 구문 delete 명령은 다음과 같습니다-

delete key [noreply]

산출

CAS 명령은 다음 결과 중 하나를 생성 할 수 있습니다.

  • DELETED 성공적으로 삭제되었음을 나타냅니다.

  • ERROR 데이터 삭제 중 오류 또는 잘못된 구문을 나타냅니다.

  • NOT_FOUND Memcached 서버에 키가 없음을 나타냅니다.

이 예에서는 tutorialspoint를 키로 사용하고 만료 시간이 900 초인 memcached를 여기에 저장합니다. 그 후 저장된 키를 삭제합니다.

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

Java 애플리케이션을 사용하여 데이터 삭제

Memcached 서버에서 데이터를 삭제하려면 Memcached를 사용해야합니다. delete 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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 명령은 Memcached 서버에서 기존 키를 삭제하는 데 사용됩니다.

통사론

Memcached의 기본 구문 delete 명령은 다음과 같습니다-

delete key

키가 성공적으로 삭제되면 DELETED를 반환합니다. 키가 없으면 NOT_FOUND를 반환하고 그렇지 않으면 ERROR를 반환합니다.

이 예에서는 tutorialspoint를 키로 사용하고 만료 시간이 900 초인 memcached를 여기에 저장합니다. 그 후 저장된 키를 삭제합니다.

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

Java 애플리케이션을 사용하여 데이터 삭제

Memcached 서버에서 데이터를 삭제하려면 Memcached를 사용해야합니다. delete 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached incrdecr명령은 기존 키의 숫자 값을 늘리거나 줄이는 데 사용됩니다. 키를 찾을 수 없으면 다음을 반환합니다.NOT_FOUND. 키가 숫자가 아니면 다음을 반환합니다.CLIENT_ERROR cannot increment or decrement non-numeric value. 그렇지 않으면,ERROR 반환됩니다.

구문-incr

Memcached의 기본 구문 incr 명령은 다음과 같습니다-

incr key increment_value

이 예에서는 방문자를 키로 사용하고 처음에 10을 설정 한 다음 방문자를 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

구문-decr

Memcached의 기본 구문 decr 명령은 다음과 같습니다.

decr key decrement_value

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

Java 애플리케이션을 사용하여 증가 / 감소

Memcached 서버에서 데이터를 늘리거나 줄이려면 Memcached를 사용해야합니다. incr or decr 각각 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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

Memcached stats 명령은 PID, 버전, 연결 등과 같은 서버 통계를 반환하는 데 사용됩니다.

통사론

Memcached의 기본 구문 stats 명령은 다음과 같습니다-

stats

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

Java 애플리케이션을 사용한 통계

Memcached 서버에서 통계를 얻으려면 Memcached를 사용해야합니다. stats 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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 명령은 슬래브 ID로 구성된 개수, 나이, 퇴거 등과 같은 항목 통계를 가져 오는 데 사용됩니다.

통사론

Memcached의 기본 구문 stats items 명령은 다음과 같습니다-

stats items

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 명령은 슬래브 ID로 구성된 크기, 메모리 사용량, 명령, 개수 등과 같은 슬래브 통계를 표시합니다.

통사론

Memcached의 기본 구문 stats slabs 명령은 다음과 같습니다-

stats slabs

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 sizes명령은 캐시 내의 각 크기 항목의 크기 및 수에 대한 정보를 제공합니다. 정보는 두 개의 열로 리턴됩니다. 첫 번째 열은 항목의 크기 (가장 가까운 32 바이트 경계로 반올림 됨)이고 두 번째 열은 캐시 내에서 해당 크기의 항목 수입니다.

통사론

Memcached의 기본 구문 stats sizes 명령은 다음과 같습니다-

stats sizes

stats sizes
STAT 96 1
END

항목 크기 통계는 저장중인 개체의 크기를 확인하는 데만 유용합니다. 실제 메모리 할당은 청크 크기 및 페이지 크기 측면에서만 관련이 있으므로이 정보는 신중한 디버깅 또는 진단 세션 동안에 만 유용합니다.

Memcached flush_all명령은 Memcached 서버에서 모든 데이터 (키-값 쌍)를 삭제하는 데 사용됩니다. 라는 선택적 매개 변수를 허용합니다.time Memcached 데이터가 지워지는 시간을 설정합니다.

통사론

Memcached의 기본 구문 flush_all 명령은 다음과 같습니다-

flush_all [time] [noreply]

위의 명령은 항상 OK를 반환합니다.

다음 예에서는 일부 데이터를 Memcached 서버에 저장 한 다음 모든 데이터를 지 웁니다.

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

Java 애플리케이션을 사용하여 데이터 지우기

Memcached 서버에서 데이터를 지우려면 Memcached를 사용해야합니다. flush 방법.

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

산출

프로그램을 컴파일하고 실행하면 다음 출력을 볼 수 있습니다.

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