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); };
set
とget
以外に何ができるかはここのリポジトリを見たらなんとなく分かるかも
Redisは単純なインターフェースかつ高速なKVSで面白そう。
JSON.stringify()
とJSON.parse()
使うの前提でnode.jsとRedisは相性良さそう!