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 파일을 아래와 같이 설치합니다. 시스템 서비스로
그런 다음 이 서비스를 선택하고 마우스 오른쪽 버튼을 클릭합니다. 시작하세요.
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 잘못된 데이터 청크
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 중국어 웹사이트에서 관련 기사를 주목하세요!