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() . |