>Java >java지도 시간 >분산 캐싱 소프트웨어 Memcached의 Java 클라이언트 사용을 설명하는 예

분산 캐싱 소프트웨어 Memcached의 Java 클라이언트 사용을 설명하는 예

高洛峰
高洛峰원래의
2017-01-23 09:49:231499검색

Memcached 소개
Memcached를 소개하겠습니다.

1. Memcached란

Memcached는 키-값 팀 형태로 데이터에 액세스하는 오픈 소스 고성능 분산 메모리 개체 캐시 시스템입니다. 단순한 디자인은 빠른 배포를 촉진하고 개발이 쉬우며 빅 데이터 캐싱이 직면한 많은 문제를 해결합니다.


공식 웹사이트는 http://memcached.org/입니다. 현재 Wikipedia, Flickr, Youtube, WordPress 등 잘 알려진 많은 인터넷 애플리케이션에서 Memcached를 사용하고 있습니다.

2. Windows 플랫폼에서 MemCached를 다운로드하세요:

http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

해당 소스코드 주소는

http://code.jellycan.com/files/memcached-1.2.6-win32-src.zip

그런 다음 압축을 풀면 나옵니다. memcached.exe 파일을 아래와 같이 설치합니다. 시스템 서비스로

분산 캐싱 소프트웨어 Memcached의 Java 클라이언트 사용을 설명하는 예

그런 다음 이 서비스를 선택하고 마우스 오른쪽 버튼을 클릭합니다. 시작하세요.

DOS 인터페이스에 telnet 127.0.0.1 11211을 입력하여 서비스가 올바르게 시작되었는지 확인하면 다음과 같이 표시됩니다.

위 그림에 표시된 오류 는 아무렇게나 문자를 입력하고 를 누르면 입력용으로 memcached에서 지정한 프로토콜을 설치해야 하기 때문에 캐리지 리턴이 표시되고, 그렇지 않으면 위와 같은 오류가 표시됩니다.

3. Memcached 프로토콜 및 데이터 액세스

소위 프로토콜은 해당 작업(데이터 액세스)에 대한 문법 규칙으로 이해될 수 있습니다.

set: 레코드 저장

key: 레코드의 키 값

flags: 십진 정수, 레코드를 저장할 때 클라이언트 플래그를 식별하고, 레코드가 반환될 때 반환됩니다. 기록이 나옵니다.

exptim: 데이터의 만료 시간, 0은 만료 없음을 의미하고, 다른 값은 만료 후 유효 시간(밀리초)을 나타냅니다. 클라이언트는 이 레코드를 얻을 수 없으며 만료됩니다. memcached의 기록이 지워지거나 삭제됩니다.

get: memcached에서 키에 해당하는 값을 가져오는 것을 의미합니다. 해당 값이 없으면 종료 플래그를 반환합니다. END

append: 해당 값에 입력 내용을 추가하는 것을 의미합니다. 키 끝

삭제: 키에 해당하는 값 삭제

자세한 프로토콜은 memcached 패키지에 포함된 프로토콜.txt를 참조하세요

구체적인 예 as:

필수 참고: 설정 중에 지정된 문자 길이가 5이고 입력 내용이 이 길이를 초과하면 오류가 보고됩니다. CLIENT_ERROR 잘못된 데이터 청크

분산 캐싱 소프트웨어 Memcached의 Java 클라이언트 사용을 설명하는 예

4, memcached에서 데이터 액세스 작업을 수행하는 코드 작성

일반적으로 오픈 소스 캡슐화된 memcached 클라이언트를 사용하여 memcached를 작동할 수 있습니다. 물론 코드에 따라 소켓 통신을 작성할 수도 있습니다. memcached 프로토콜 구현.

Memcached-Java-Client 다운로드 페이지:

http://github.com/gwhalin/Memcached-Java-Client/downloads, 다운로드 선택:

java_memcached - release_2.5.1.zip

압축이 해제된 Test 디렉터리에서 작성된 예제를 볼 수 있습니다. com.danga.MemCached.test를 실행하면 데이터 저장 및 철회 상태를 확인할 수 있습니다. 여기에 코드도 게시되어 있습니다. :

package com.danga.MemCached.test;
 
import com.danga.MemCached.MemCachedClient;
 
import com.danga.MemCached.SockIOPool;
 
import org.apache.log4j.*;
 
public class TestMemcached {
 
public static void main(String[] args) {
 
// memcached should be running on port 11211 but NOT on 11212
 
BasicConfigurator.configure();
 
//缓存服务器地址,多台服务器则以逗号隔开,11211为memcached使用的端口号
 
String[] servers = { “localhost:11211″ };
 
//得到一个链接池对象并进行一些初始化工作
 
SockIOPool pool = SockIOPool.getInstance();
 
pool.setServers( servers );
 
pool.setFailover( true );
 
pool.setInitConn( 10 );
 
pool.setMinConn( 5 );
 
pool.setMaxConn( 250 );
 
//pool.setMaintSleep( 30 );
 
pool.setNagle( false );
 
pool.setSocketTO( 3000 );
 
pool.setAliveCheck( true );
 
pool.initialize();
 
MemCachedClient mcc = new MemCachedClient();
 
// turn off most memcached client logging:
 
//Logger.getLogger( MemCachedClient.class.getName() ).setLevel( com.schooner.MemCached.Logger. );
 
//以下是数据写入和取出操作例子
 
for ( int i = 0; i < 10; i++ ) {
 
boolean success = mcc.set( “” + i, “Hello!” );
 
String result = (String)mcc.get( “” + i );
 
System.out.println( String.format( “set( %d ): %s”, i, success ) );
 
System.out.println( String.format( “get( %d ): %s”, i, result ) );
 
}
 
System.out.println( “\n\t — sleeping –\n” );
 
try { Thread.sleep( 10000 ); } catch ( Exception ex ) { }
 
for ( int i = 0; i < 10; i++ ) {
 
boolean success = mcc.set( “” + i, “Hello!” );
 
String result = (String)mcc.get( “” + i );
 
System.out.println( String.format( “set( %d ): %s”, i, success ) );
 
System.out.println( String.format( “get( %d ): %s”, i, result ) );
 
}
 
}
 
}

MemCached Java 클라이언트 인스턴스

package com.danga.MemCached.test; 
  
import com.danga.MemCached.*; 
public class TestMemcached { 
 public static void main(String[] args) { 
  /*初始化SockIOPool,管理memcached的连接池*/ 
  String[] servers = { "192.168.105.217:11211" }; 
  SockIOPool pool = SockIOPool.getInstance(); 
  pool.setServers(servers); 
  pool.setFailover(true); 
  pool.setInitConn(10); 
  pool.setMinConn(5); 
  pool.setMaxConn(250); 
  pool.setMaintSleep(30); 
  pool.setNagle(false); 
  pool.setSocketTO(3000); 
  pool.setAliveCheck(true); 
  pool.initialize(); 
  /*建立MemcachedClient实例*/ 
  MemCachedClient memCachedClient = new MemCachedClient(); 
  for (int i = 0; i < 10; i++) { 
   /*将对象加入到memcached缓存*/ 
   boolean success = memCachedClient.set("" + i, "Hello!"); 
   /*从memcached缓存中按key值取对象*/
   String result = (String) memCachedClient.get("" + i); 
   System.out.println(String.format("set( %d ): %s", i, success)); 
   System.out.println(String.format("get( %d ): %s", i, result)); 
  } 
 } 
}

1. 압축을 푼다(이 예에서는 c: memcached로 압축을 푼다).
2. 명령줄 상태에서 c:memcachedmemcached.exe -d install을 입력합니다. 이 시점에서 memcached는 Windows 서비스로 설치되었습니다
3. 명령줄에 c:memcachedmemcached.exe -d start를 입력하여 memcached 서비스를 시작합니다. 물론 Windows 서비스에서 시작하도록 선택할 수도 있습니다.

분산 캐싱 소프트웨어 Memcached의 Java 클라이언트 사용을 설명하는 더 많은 예를 보려면 PHP 중국어 웹사이트에서 관련 기사를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.