Node implementation of a multi-key LRU cache. It uses lru-cache under the hood and adds functionality for handling mutli-keys puts and batch cache eviction (purging).
// Require the library
var MultiKeyCache = require('mkc');
// Create a new cache
var cache = new MultiKeyCache({ max: 4 });
// Add a few entries to the cache
cache.set({ key1: 'alpha', key2: 'one' }, { name: 'one' });
cache.set({ key1: 'alpha', key2: 'two' }, { name: 'two' });
cache.set({ key1: 'beta', key2: 'one' }, { name: 'one' });
// Returns: { name: 'two' }
cache.get({ key1: 'alpha', key2: 'two' });
// Removes all entries with key1 === 'alpha'
cache.purge({ key1: 'alpha' });
Creates a new multi-key cache with the given options. The options should follow the same format given to the lru-cache constructor.
// Create a Multi-key LRU Cache that accepts strings and only holds 1024
// characters at maximum.
var myCache = new MultiKeyCache({
max: 1024,
length: function (string) {
return string.length;
}
});
Puts an object into the cache with the given key values.
Gets and object from the cache with the given key values.
Removes all objects with the given key values.
// Add a few objects...
cache.set({a: 1, b: 1}, '1-1');
cache.set({a: 1, b: 2}, '1-2');
cache.set({a: 1, b: 3}, '1-3');
cache.set({a: 2, b: 1}, '2-1');
// Removes everything except '2-1'
cache.purge({ a: 1 });
Clears the entire cache.
To run tests simply execute npm test
on the command line. You can also build
the jsdocs for the project using npm run doc
.
MIT