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

Package Sidebar

Install

npm i mcache

Weekly Downloads

100

Version

0.4.0

License

GPL-2.0

Unpacked Size

98.3 kB

Total Files

43

Last publish

Collaborators

  • sh84