Node.js+Redis(通常のデータベースとして)

 最近Node.jsで遊んでます。データベースとしてそれほど大袈裟なものは必要ないのでRedisを試してみようかといろいろいじってるんですが難しいです(特に取得結果をコールバックで受け取る流れに慣れていなかったので)。セッション管理としてではなく普通のデータベースとしてRedisを使ってみたので、そのメモ代わりとしてちょこっと書いてみます。
 まずはNode.jsとnpmはインストール済みとしてRedisをインストールします

npm install redis

最初はいちばんシンプルにデータをset()して、それをget()するというもの。
redisExample.js

var redis = require('redis');
var client = redis.createClient();

client.set('momota', ['error', 'argument'], function(err, stat) {
    if (err) {
        console.log(err);
        return;
    }
    console.log(stat);
});

client.set('momota', 'kanako', function(err, stat) {
    if (err) {
        console.log(err);
        return;
    }
    console.log(stat);
});

client.get('momota', function(err, data) {
    console.log(data);
});

client.quit();

javascriptお得意のコールバックですよ。これだとget()したデータを元に次のデータをget()するみたいなことはコールバックの深みに嵌りそうですね。やっぱりセッション管理みたいなシンプルな使い方に向いてると思います。


 実行するにはまずredis-serverを立ち上げてからnodeを実行します。

$ redis-server(別ウィンドウで実行)
$ node redisExample.js

実行結果は、

{ stack: [Getter/Setter],
  arguments: undefined,
  type: undefined,
  message: 'ERR wrong number of arguments for \'set\' command' }
OK
kanako

となります。注意することとして最後にquit()しないと実行が終了しません。


 Redisは文字列だけでなくハッシュなども扱えるので、それほど複雑でない用途でなら十分通常のデータベースとして使えるのではないか、そう考えてこれからも使っていこうと思ってます。和田えりかさんお誕生日おめでとうございます。