16.6.3.8 Java에서 MySQL과 memcached 사용
         Java에 포함 된 com.danga.MemCached 클래스는 memcached 인스턴스에 대한 기본 인터페이스를 제공합니다.  이 클라이언트는 https://github.com/gwhalin/Memcached-Java-Client/downloads 에서 구할 수 있습니다.  이 Java 클래스는 libmemcached 와 호환 해시를 사용하기 때문에 같은 memcached 인스턴스에 액세스하는 Java 및 libmemcached 응용 프로그램을 혼합 및 조화 수 있습니다.  Java 및 기타 인터페이스 사이의 직렬화에는 호환성이 없습니다.  이것이 문제가되는 경우는 JSON 또는 이와 유사한 비 바이너리 직렬화 형식을 사용하십시오. 
  대부분의 시스템에서는 패키지를 다운로드하여 jar 를 직접 사용할 수 있습니다. 
  com.danga.MemCached 인터페이스를 사용하려면 MemCachedClient 인스턴스를 만들고 SockIOPool 를 구성하고 서버 목록을 구성합니다.  이 풀을 지정하면 서버 목록 가중치 및 연결 매개 변수를 설정하고 클라이언트 구성했다 memcached 인스턴스 간의 연결을 최적화합니다. 
일반적으로 하나의 클래스에서 memcached 인터페이스를 일단 구성하면, 나머지는이 인터페이스를 나머지 응용 프로그램 전체에서 사용할 수 있습니다.
  예를 들어, 기본 인터페이스를 만들려면 먼저 MemCachedClient 및 기반 SockIOPool 설정을 구성합니다. 
public class MyClass {
    protected static MemCachedClient mcc = new MemCachedClient();
    static {
	
        String[] servers =
            {
                "localhost:11211",
            };
	
        Integer[] weights = { 1 };
	
        SockIOPool pool = SockIOPool.getInstance();
	
        pool.setServers( servers );
        pool.setWeights( weights );
위의 예에서 사용하는 memcached 인스턴스의 배열을 생성하여 서버 목록이 구성되어 있습니다. 그런 다음 각 서버에 대한 개별 가중치를 구성합니다.
연결에 대한 나머지 특성은 선택적이지만, 풀 매개 변수를 설정하여 연결 수치 (초기 연결 수, 최소 연결 최대 연결 수 및 유휴 타임 아웃)을 설정할 수 있습니다.
pool.setInitConn( 5 ); pool.setMinConn( 5 ); pool.setMaxConn( 250 ); pool.setMaxIdle( 1000 * 60 * 60 * 6
매개 변수를 구성한 후에는 연결 풀을 초기화합니다.
pool.initialize();
이제 풀과 memcached 인스턴스에 대한 연결을 사용할 수 있습니다.
  특정 키를 저장할 때 사용되는 서버의 선택에 사용하는 해시 알고리즘을 설정하려면 pool.setHashingAlg() 를 사용합니다. 
pool.setHashingAlg( SockIOPool.NEW_COMPAT_HASH );
  유효한 값은 기본 모듈 해시 알고리즘이기도하다 NEW_COMPAT_HASH , OLD_COMPAT_HASH 및 NATIVE_HASH 입니다.  일관성 해시 알고리즘의 경우 CONSISTENT_HASH 을 사용합니다.  이러한 상수는 libmemcached 의 해당 해시 설정과 동일합니다. 
  다음 표는 Java의 com.danga.MemCached 메소드와 memcached 인터페이스 사양에 포함 된 동일한 범용 메소드의 개요를 나타냅니다. 
  Java의 com.danga.MemCached 방법  | 동등한 범용 메소드 | 
|---|---|
 get()  |    일반 get() .  | 
 getMulti(keys)  |    여러 keys 의 값을 취득 키에 java.lang.String 해당 값에 java.lang.Object 를 각각 사용하여 해시 맵으로 정보를 반환합니다.  | 
 set()  |    일반 set() .  | 
 add()  |    일반 add() .  | 
 replace()  |    일반 replace() .  | 
 delete()  |    일반 delete() .  | 
 incr()  |    일반 incr() .  | 
 decr()  |    일반 decr() .  |