ことばアルバム

にわかエンジニアのにわか備忘録

node.jsでRedis

node.jsのアプリケーションからredisに対して操作したい時のメモ。
最初に注意点として、node.jsのバージョンをv0.10.25とか0.10系を使うようにしないとハマります。
v0.11.9を最初使って、いっこうにnpm installが上手く行かなくて結構時間とられました。


Redis

macでhomebrew入ってる人はbrew install redisでOK。
あとは$redis-serverで起動して、$redis-cliでRedisのクライアントを実行できれば完了。


dependencies

node.jsアプリケーションのpackage.json
最低限、この二つだけで動く模様

"dependencies": {
    "hiredis": "*",
    "redis": "*"
}

npm installを忘れないように。


実装

clientを準備する。

var redis = require("redis"),
    client = redis.createClient();

 
createClient()の引数を指定する場合はこんな感じになる。

//redis.createClient(port, host, options);
redis.createClient(6379, "127.0.0.1", {connect_timeout: 1000});

 
普通に使うだけならこんな形でいいかも。

var redis = require("redis"),
    client = redis.createClient();


var createKey = function(_type, _id) {
    return 'application_name:' +  _type + ':' + _id;
};

exports.set = function(user_id, callback) {
    var key = createKey('user', user_id);
    var data = {
        id: user_id,
        name: 'sample',
        time: {
            create: Date.now()
        }
    };
    
    client.set(key, JSON.stringify(data), callback);
};

exports.get = function(user_id, callback) {
    var key = createKey('user', user_id);
    client.get(key, callback);
};

 
setget以外に何ができるかはここのリポジトリを見たらなんとなく分かるかも

 
Redisは単純なインターフェースかつ高速なKVSで面白そう。
JSON.stringify()JSON.parse()使うの前提でnode.jsとRedisは相性良さそう!