jmemcachedを動かしてみる
サーバ側
□サイト
jmemcached
http://sourceforge.jp/projects/freshmeat_jmemcached/
□インストール
http://thimbleware.com/maven/com/thimbleware/jmemcached/jmemcached-cli/0.9.1/
から
jmemcached-cli-0.9.1-main.jar
をダウンロード
クライアント側
□インストール
http://github.com/gwhalin/Memcached-Java-Client/downloads
から
java_memcached-release_2.5.1.zip
をダウンロード
□起動
プログラムからアクセスする
□ソース(テストコードから拝借&shutDown処理を追加)
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(); 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( 1000 ); } 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 ) ); } // これを追加しないとサーバ側でエラーになる。。 pool.shutDown(); } }
□実行結果
set( 0 ): true
get( 0 ): Hello!
set( 1 ): true
get( 1 ): Hello!
set( 2 ): true
get( 2 ): Hello!
set( 3 ): true
get( 3 ): Hello!
set( 4 ): true
get( 4 ): Hello!
set( 5 ): true
get( 5 ): Hello!
set( 6 ): true
get( 6 ): Hello!
set( 7 ): true
get( 7 ): Hello!
set( 8 ): true
get( 8 ): Hello!
set( 9 ): true
get( 9 ): Hello!-- sleeping --
set( 0 ): true
get( 0 ): Hello!
set( 1 ): true
get( 1 ): Hello!
set( 2 ): true
get( 2 ): Hello!
set( 3 ): true
get( 3 ): Hello!
set( 4 ): true
get( 4 ): Hello!
set( 5 ): true
get( 5 ): Hello!
set( 6 ): true
get( 6 ): Hello!
set( 7 ): true
get( 7 ): Hello!
set( 8 ): true
get( 8 ): Hello!
set( 9 ): true
get( 9 ): Hello!
というわけで
じゃばじゃばなプロジェクトにはいいかも。