mkc

1.3.0 • Public • Published

mkc

Build Status Dependency Status devDependency Status

NPM

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).

Usage

// 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' });

Documentation

new MultiKeyCache( [options] )

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;
  }
});

.set(keyValues, object)

Puts an object into the cache with the given key values.

.get(keyValues)

Gets and object from the cache with the given key values.

.purge(keyValues)

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 });

.reset()

Clears the entire cache.

Developing

To run tests simply execute npm test on the command line. You can also build the jsdocs for the project using npm run doc.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i mkc

Weekly Downloads

11

Version

1.3.0

License

MIT

Last publish

Collaborators

  • rsandor