memcachedをwindowsに入れてJavaで操作してみた
メモとして
まず、memcachedのwindows版を落とす。
http://www.splinedancer.com/memcached-win32/
memcached-1.2.4-Win32-Preview-20080309_bin.zip
と言うファイルがダウンロードできるので、解凍する。
インストール方法は、
コマンドラインから以下のコマンドを実行するよう
> c:\memcached-1.2.4-Win32-Preview-20080309_bin\memcached.exe -d install
サーバーの起動方法は、
コマンドラインから以下のとおり
> c:\memcached-1.2.4-Win32-Preview-20080309_bin\memcached.exe -d start
とりあえず、タスクマネージャーを確認するとプロセスは起動しているよう。
なので、テストしてみる。
コマンドプロンプトからtelnetでつないで操作する。
接続
> telnet localhost 11211
接続できたら・・・ステータス確認
> stats
STAT pid 3804
STAT uptime 732
STAT time 1265011436
STAT version 1.2.4
STAT pointer_size 32
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 1
STAT total_connections 2
STAT connection_structures 2
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT evictions 0
STAT bytes_read 28
STAT bytes_written 14
STAT limit_maxbytes 67108864
STAT threads 1
END格納テスト
> set unrocko 0 0 5
test1
STORED
※最初の0はフラグ、2番目は格納期限 0は無期限、最後の5は5byteの文字を格納するよってことらしい取り出しテスト
> get unrocko
VALUE unrocko 0 5
test1
END
memcachedへの格納は行われている。
問題なし。
次にJavaからアクセスしてみる。
まず、以下の2つのjarが必要
- java_memcached-release_2.0.1.jar
- log4j-1.2.13.jar
で、ソースは以下の通り
MemCachedClient.java
package jp.co.zealot.iwashita.memcached.test; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class MemcachedTest { public static void main(String[] args) { SockIOPool pool = SockIOPool.getInstance(); pool.setServers(new String[] {"localhost:11211"}); pool.initialize(); MemCachedClient client = new MemCachedClient(); client.set("hoge", "HogeHoge"); client.set("piyo", "PiyoPiyo"); client.set("fuga", "FugaFuga"); String name = (String) client.get("hoge"); System.out.println("name:" + name); String str = (String) client.get("puri"); System.out.println("str1 : " + str); if (str == null) { client.set("puri", "PuriPuri"); } str = (String) client.get("puri"); System.out.println("str2 : " + str); } }
結果は
name:HogeHoge
str1 : null
str2 : PuriPuri
大丈夫な感じ。
まぁ、そんな難しいことじゃないから、どちらかというとどう設計して、どう活用するかが難しいところかな。