nice-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
Installation
npm install nice-cache
Usage
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.
var Cache = http = ; var cache = refreshInterval: 60 ; http;
API
new Cache([options])
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, defaulttrue
, when false returns a new instance after any initialisation.refreshInterval
, int, default0
, sets the refresh interval for the subscribed functions (seconds). When 0 it does nothing.flushInterval
, int, default0
, sets the flush interval for all the keys. When 0 it never flushes and so values never expire.verbose
, bool, defaultfalse
, writes stuff on the console for debugging purposes.
Cache#set([type, ] key, value)
Sets a value. Type is optional.
Cache#get([type, ] key)
Gets a value. Type is optional. Returns undefined
when a key is not found.
Cache#flush()
Cleans the cache
Cache#sub([type, ] key, func)
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.
Cache#refresh([type, ] key, func)
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.
Tests
npm test
License
MIT