lru

A simple O(1) LRU cache

lru

A simple LRU cache supporting O(1) set, get and eviction of old keys

$ npm install lru
var LRU = require('lru').LRU;
 
var cache = new LRU(2),
    evicted
 
cache.on('evict',function(data) { evicted = data });
 
cache.set('foo', 'bar');
cache.get('foo'); //=> bar 
 
cache.set('foo2', 'bar2');
cache.get('foo2'); //=> bar2 
 
cache.set('foo3', 'bar3');
cache.get('foo3'); //=> bar3,  evicted = { key: 'foo', value: 'bar' } 

Create a new LRU cache that stores length elements before evicting the least recently used.

Returns: the newly created LRU cache

Set the value of the key and mark the key as most recently used.

Returns: value

Set the value of the key and mark the key as most recently used.

Query the value of the key and mark the key as most recently used.

Returns: value of key if found; undefined otherwise.

Respond to events. Currently only the evict event is implemented. When a key is evicted, the callback is executed with an associative array containing the evicted key: {key: key, value: value}.

A big thanks to Dusty Leary who finished the library.

MIT