インストール

https://github.com/elbart/node-memcacheを使う。

npm install memcache


プログラム書いた

2秒expireで書き込み→すぐ読む→3秒待って読む、という例。

memcache-test.js
var memcache = require('memcache');
var client = new memcache.Client(11211, 'localhost');
client.connect();

var get = function(){
client.get('name', function(err, val){
if(!err) console.log(val);
else console.error('get error');
});
};

client.set('name', 'shokai', function(err, res){
if(err){
console.error('set error');
process.exit(1);
}
get();
setTimeout(function(){
console.log('wait 3 sec');
get();
}, 3000);
}, 2);


実行

node memcache-test.js


結果

shokai
wait 3 sec
null

値がまだ書き込まれていないかexpireしている時はnullが返ってくる。
返り値のerrorは、setはnullが、getはundefinedが入っていた。
setのresultには保存失敗した場合はSTORED返ってきた。errorの方だけ見ればいいかも。

接続エラー

memcahedが起動していなかったり、client.connect()せずにsetするとこういうエラーがでる。
最初connect忘れていてなんだこのエラーは!?と思った。
node_modules/memcache/lib/memcache.js:110
this.conn.write(query + crlf);
^
TypeError: Cannot call method 'write' of null