isaacs/node-lru-cache · GitHub が便利。
Java でいうと Ehcache みたいに使える。ただ、Ehcache はキャッシュアルゴリズムを指定できるが、
lru-cache は LRU(Least Recently Used)という名の通り、最近のもっとも使われていないデータを最初に捨てるアルゴリズム専用。
インストール
npm install lru-cache
初期設定
var LRU = require("lru-cache"); var options = { max: 500, //キャッシュの最大件数 maxAge: 24 * 60 * 60 * 1000 //保存期間の指定、単位はミリ秒 } var cache = LRU(options);
使い方
保存
var key = 'user_100'; var value = { user_id: 'user_100', name: 'ユーザー100', parameter: { attack: 300, defense: 100, }, time : { create: '2014-09-05T00:00:00.000Z', update: '2014-09-05T09:30:00.000Z' } }; cache.set(key, value);
value にはアプリケーション側で使ってる object をそのまま格納してしまえばいい。
取得
var user = cache.get('user_100'); console.log(user.name); //'ユーザー100' console.log(user.time.update); //''2014-09-05T09:30:00.000Z'
get(key) で取得した場合は、内部的に "recently used" がマークされ、LRU アルゴリズムが適用される。 LRU が不要な場合は、peek(key) で取得すれば良い。
その他
cache.has(key); //存在チェック cache.del(key); //削除 cache.reset(); //全削除 cache.keys(); //キーの配列を取得 cache.values(); //値の配列を取得 cache.forEach(function(value, key, cache) { console.log(value.name); //イテレート処理 );