What is it, naokirin?

Redis for C#

さて、やってまいりました、Redisのお時間です。
今回はC++から操作してみようと思います。

・・・・え?タイトルがC#になってる?
そうなんです。実はなんとなくC++でRedisを操作してみようと思い立ち、いろいろ探してみました。

結論:Windows(Visual Studio)からはムリそうです・・・orz

ライブラリを探してみたのですが、Unix/Linux環境必須の形で作られているものばかりで、かなり大改修をしないとVisual Studioからはとてもじゃないけど使えないようなものしかないようです。

というわけで気持ちを入れ替えて、C#にちょうせーん!

お、さすがC#。.NET用で作られているのが普通にあるから、コレはVisual Studioですぐに使えるはず!
https://github.com/migueldeicaza/redis-sharpからダウンロード。
思った通り、Visual Studio用のソリューションが見える・・・

コレは勝ったも同然!とおもって急いでビルド+実行。

アレ?動かない・・・ って、スタートアッププロジェクトがRedisSharpの方になってるし!
というわけで、ソリューションのプロパティからスタートアッププロジェクトをRedisTestに変更。

ビルド+実行。


――――れ・い・が・い・は・っ・せ・い

えええ〜。こんなにすんなりビルド通ってここで止まりますか〜

一応確認のために、Get()関数だけ動かしてみる。

動いてる・・・例外発生しない・・・

ちなみにSet()関数も試す。 例外発生なし。

アレ〜?普通に使えるぞ〜。


というわけで結論。 自分で書いたら使えるのかも。

もしくは今回自分で書いた関数以外に例外が発生するような処理があるのかも。

微妙な結論ですが、今回はそういうことで。 理由が分かった場合は追記したいと思います。(期待しないでね。)

ちなみにコードはこんな感じ。

using System;
using System.Text;
using System.Collections.Generic;

class Test {
    static void Main (string[] args)
    {
        Redis r;
        if (args.Length >= 2)
        {
            r = new Redis(args[0], Convert.ToInt16(args[1]));
        } else {
            r = new Redis();
        }
        
        r.Set("foo", "bar");
        Console.WriteLine(r.Get(foo));
    }
}



で一応、"bar"が表示されるはずです。
エラー表示などをはずしているのであまりい処理とは言えませんが、動くかどうかの試しなのでこの程度でいいかと。