RedisのWindowsポーティング版を使ってみる

数年前に広告配信エンジンを作ってた時にRedisを使っていたのですが↓ Redisの負荷検証(1000万レコード突っ込んだ時の動きをみてみる) Redisに500万レコード突っ込んで複数クライアントからGETしてみる Redisでレプリケーション(多段スレーブも試してみる) Redisの設定ファイル(redis.conf)の和訳    ここのところ全く触れておらず、当時と開発用のパソコンも変わっているので、 イチから環境構築するっていうことで、備忘録的に残しておきます。     ■ Redisのホームページ   http://redis.io/ がホームページになりますが、VMware臭がしますねぇと。 こちらもPivotal的な会社に移管されるのでしょうか? 個人的に、その辺がどうなっていくのか、とても興味があります。     Windows版Redisのインストール   ダウンロードページ(http://redis.io/download)みると、Windowsについても言及されています。

Win32/64 Unofficial版 Redisプロジェクトは直接Windowsをサポートしていないけれども、 Microsoft Open Tech groupがWindows(32/64)への実験的な移植の開発/保守をしています。 現在、Windows版のクオリティはプロダクションで使えるレベルではありませんが、 Windowsマシンでのプログラム開発に利用することは可能です。 Redisプロジェクトとして、Windows版開発者とコラボレーションしていきたいと思っていますが、 現在はまだコードベースをマージするに至っていません。

私の場合は、 ・プロダクションはLinuxサーバーで動くアプリケーションを ・Windowsマシンで開発する という感じですので、このWindows版を利用したいと思います。   で、Githubのページ(https://github.com/MSOpenTech/redis)を見ていくと、、 ↓自分でVisualStudio落としてきてビルドすんのかい?って感じしますが、   よくみると、、msvs/bin/release 配下にバイナリが置いてあるということで良かったです。。

For your convinience all binaries and the MSI for the Redis-Watcher service will be available in the msvs/bin/release|debug directories.

ということで、redisbin.zipをダウンロードしてきます。 Program FilesにRedisWinディレクトリを作ってそこにexeファイルを置いてやります。     Windows版Redisの起動   redis-server.exe をボチボチってやってやると ↓のようにそれっぽく起動しました。   クライアント(redis-cli.exe) を2つ立ち上げて setしたりgetしたりしてみましたが、イイ感じに動きました。     JavaからRedisにアクセス   今回はJavaのバッチアプリケーションからRedisにアクセスするので、 Javaクライアントを利用します。Redisのクライアントページ(http://redis.io/clients) を見ると、JavaだとJedisがオススメって星が付いてますね。   JedisのGithub(https://github.com/xetorthio/jedis)のReadmeを読むと、下記のようにpom.xmlの記述法が書いてあります。 ってことで、これをまんまプロジェクトのpom.xmlに記載します。   でもって、Main文の↓こんなプログラム書いて

public class RedisLoader {
    public static void main (String args[]) {
        Jedis jedis = new Jedis("localhost");
        jedis.set("foo", "bar");
        System.out.println(jedis.get("foo"));
    }
}

  実行すると↓メデタシメデタシ。   ↓サーバー側もイイ感じです。

[3236] 19 Feb 16:59:24 - Accepted 127.0.0.1:53708
[3236] 19 Feb 16:59:24 - Client closed connection
[3236] 19 Feb 16:59:24 - DB 0: 3 keys (0 volatile) in 4 slots HT.