A node.js in-memory cache - get, set, or subscribe to the auto-updater loop
npm install nice-cachenice-cache
=============
A nice in-memory cache for node.js. In addiction of the classic auto-flush mechanism, it comes with an auto-refresh mechanism.
Node version: 0.8.0 required
Build status: 

``shell`
npm install nice-cache
A simple usage with a web-server that consumes an API or reads from a DB:
* Try getting a value from the cache
* When a key is not found:
* you set the value
* then you subscribe a delegate function to the refresh loop, that will happen every 60 seconds.
`js
var Cache = require('nice-cache'),
http = require('http');
var cache = new Cache({ refreshInterval: 60 });
http.createServer(function (req, res) {
var getUsers = function(callback){
// do something asynchronous...
callback(err, result);
};
var users = cache.get('api-responses', 'users');
if(!!users)
return res.end(users);
getUsers(function(err, result){
cache.set('api-responses', 'users', result);
cache.sub('api-responses', 'users', getUsers);
res.end(result);
});
}).listen(1337, '127.0.0.1');
`
Gets the current instance of the cache (eventually after creating it).
The optional options parameter can consist on one of more of the following properties:singleton
* , bool, default true, when false returns a new instance after any initialisation.refreshInterval
* , int, default 0, sets the refresh interval for the subscribed functions (seconds). When 0 it does nothing.flushInterval
* , int, default 0, sets the flush interval for all the keys. When 0 it never flushes and so values never expire.verbose
* , bool, default false, writes stuff on the console for debugging purposes.
Sets a value. Type is optional.
Gets a value. Type is optional. Returns undefined when a key is not found.
Cleans the cache
Subscribes the key-value assignment (paired with an optional type) to the refresh loop. The asynchronous function will need to have an (err, res) callback.
When key-value assignment previously subscribed to a refresh handler, performs the refresh action immediately (instead of waiting for the refreshInterval to expire). func is a callback(err, res) containing the result of the refresh action.
`shell``
npm test
MIT