jmemcachedを使ってみる

jmemcachedはJavaベースのmemcachedサーバです。実用というよりも、Javaでmemcachdを使うようなアプリケーションを開発する際にローカル開発環境やCIなどテスト用途に使うのがよいと思います。

Mavenを使う場合はこんな感じ。

  <repositories>
    <repository>
      <id>thimbleware.repo</id>
      <url>http://thimbleware.com/maven</url>
    </repository>
  </repositories>
  ...
  <dependency>
    <groupId>com.thimbleware.jmemcached</groupId>
    <artifactId>jmemcached-core</artifactId>
    <version>0.9.1</version>
  </dependency>

Mavenを使わない場合はダウンロードページからjmemcached-core-0.8.jarをダウンロードします。またJBoss Nettyslf4jが必要になるので個別にJARファイルをダウンロードしてクラスパスに追加します。
起動・停止はこんな感じ。

MemCacheDaemon daemon = new MemCacheDaemon();
LRUCacheStorageDelegate cacheStorage = new LRUCacheStorageDelegate(1000, 1024, 1024000);
daemon.setCache(new Cache(cacheStorage));
// ポート番号を指定
daemon.setAddr(new InetSocketAddress(11211));
// 起動
daemon.start();
// 停止
daemon.stop();

getsやcasも実装されているっぽいのですが、memcached client for javaでアクセスすると、getsはできるけどcasでエラーになってしまいました。バージョンの整合性の問題か、jmemcachedの問題か、memcached client for javaの問題なのか?についてはまだ調べてません。