developer's diary

最近はc#のエントリが多いです

play framework(java) + redisをサクッと試す。(1)

playのインストールは このへんを参考に。

redisのインストールは redis 2.2.12のインストールメモ(amazon Linux)を参考に。

では早速playのプロジェクトを作るところから、ライブラリの導入等まで。

・プロジェクト作成

 play new redisplay

・jedis導入(redisのjavaクライアントの1つ)

 cd redisplay/
 mkdir lib
 wget https://github.com/downloads/xetorthio/jedis/jedis-2.1.0.jar

・commons-pool導入(jedisが必要としている)

 wget http://ftp.riken.jp/net/apache//commons/pool/binaries/commons-pool-1.6-bin.tar.gz
 tar zxvf commons-pool-1.6-bin.tar.gz 
 mv commons-pool-1.6/commons-pool-1.6.jar  ./
 rm commons-pool-1.6 -rf
 rm commons-pool-1.6-bin.tar.gz  

・ライブラリの導入ができたので、次にソースの修正

 cd ../
 vim app/controllers/Application.java 
package controllers;

import play.*;
import play.mvc.*;

import views.html.*;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class Application extends Controller {

  public static Result index() {
    
    JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
    Jedis jedis = pool.getResource();

    String result = "";

    try {
      result = jedis.get("testKey");
    } finally {
      pool.returnResource(jedis);
    }

    pool.destroy();

    return ok(result);
  }

}

そして実行

play run

ブラウザで確認。

f:id:mitsugi-bb:20130201015425p:plain

エラー発生。redisの戻り値がnullの為エラー。

・redis-cliを立ち上げて値をセットする

[root@localhost redisplay]#  ~/redis-2.6.9/src/redis-cli
redis 127.0.0.1:6379> set testKey "test ABC"
OK

セットできたので、 アプリを再度起動して、ブラウザでアクセス。

f:id:mitsugi-bb:20130201020045p:plain

test ABCと画面に表示されました。いい感じです。

今回はredis導入して、redisから値を取得して画面に表示する所までサクッと試してみました。 次回は値のセットをやってみたいと思います。

参考: http://www.playframework-ja.org/documentation/2.0.2/SBTDependencies http://d.hatena.ne.jp/hrendoh/20110901/1314887550 http://blog.livedoor.jp/tattyamm/archives/4208836.html