ホームページ  >  記事  >  Java  >  分散キャッシュソフトウェア Memcached の Java クライアントの使用例を説明します。

分散キャッシュソフトウェア Memcached の Java クライアントの使用例を説明します。

高洛峰
高洛峰オリジナル
2017-01-23 09:49:231412ブラウズ

Memcached の概要
Memcached を紹介しましょう。

1. Memcached とは

Memcached は、キーと値のチームの形式でデータにアクセスするオープンソースの高性能分散メモリ オブジェクト キャッシュ システムであり、そのシンプルな設計により、迅速な導入が容易になります。ビッグ データ キャッシュが直面する多くの問題を開発し、解決します。


公式 Web サイトは次のとおりです: 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: 10 進整数。レコードを保存するときにクライアント フラグを識別します。レコードが取得されたときに返されます。

exptim: データの有効期限。0 は有効期限がないことを意味し、他の値は有効期限を示すミリ秒数を表します。有効期限が切れると、クライアントはこのレコードを取得できなくなり、memcached 内の期限切れのレコードが取得されます。クリアまたは削除されます。

get: memcached から key に対応する値を取得することを意味します。対応する値がない場合、終了フラグ END を返します。

append:

の key に対応する値に入力された内容を追加することを意味します。 delete: キーに対応する値を削除します。

その他のプロトコルについては、memcached パッケージに含まれるprotocol.txtを参照してください。

set中に指定された文字長が5である場合に注意してください。 、入力コンテンツがこの長さを超えると、エラーが報告されます: CLIENT_ERROR bad data chunk

分散キャッシュソフトウェア Memcached の Java クライアントの使用例を説明します。4. 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 中国語 Web サイトの関連記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。