mcache

0.4.0 • Public • Published

mcache

A simple and fast async memory cache for node.js Call only one time set function for many simultaneous get requests. It is designed for quick return of data from the memory - for get operations are performed minimal coding. Api built in asynchronous design, with callbacks.

Install

npm install mcache

Examples

###Abstract example

var Mcache = require('mcache');
// ttl = 600 sec, gc_time = 60 sec
cache = new Mcache(60, 10, function(key, callback) {
	// this code will be executed at most once every 600 seconds
	var error = null;
	var value = ...;
	callback(error, value);
});
var id = ... ;
cache.get(id, function(err, data) {
	console.log(err, data);
});  

###Example with mysql

var Mcache = require('mcache');
// ttl = 60 sec, gc_time = 10 sec
cache = new Mcache(60, 10, function(key, callback) {
	// this code will be executed at most once every 60 seconds
	mysql.query('SELECT ... WHERE id=?', key, callback);  
});
var id = ... ;
cache.get(id, function(err, data) {
	console.log(err, data);
});

Multi keys and milliseconds ttl

var Mcache = require('mcache');
// ttl = 100 ms, gc_time = 60 sec
cache = new Mcache('100 ms', 60, function(key, callback) {
	if (Array.isArray(key) {
		callback(null, [...]);
	} else {
		callback(null, data);
	}
});
var id = ... ;
cache.get(id, function(err, data) {
	console.log(err, data);
});
var ids = [...];
cache.get(ids, function(err, data) {
	console.log(err, data); // data = {key1: data1, ...}
});

API

constructor(ttl, gc_time, setfunction)

create new cache object

  • ttl - time to live for item, seconds
  • gc_time - interval for clear expired items, seconds Can be empty - you must call clearOld manually.
  • setfunction(key, callback) - function, get the value by the key, must call callback(error, value)

get(key, callback)

get item from cache by key

  • key - can be any value
  • callback(error, value) - function

set(key, val)

manual item setting without setfunction call

del(key)

delete item

updateTime(key)

update set_time (time when the function was called) to the current time

size()

get items count

hash()

get all items in hash

clearOld()

delete all expired items

Dependencies (0)

    Dev Dependencies (5)

    Package Sidebar

    Install

    npm i mcache

    Weekly Downloads

    96

    Version

    0.4.0

    License

    GPL-2.0

    Unpacked Size

    98.3 kB

    Total Files

    43

    Last publish

    Collaborators

    • sh84